如何在Alexa Skill中使用Java获取amazon用户电子邮件
我是Alexa技能发展方面的新手,我正在尝试一种Alexa用电子邮件回复的技能 我正在开发Java技能,我刚刚能够使用以下工具获取用户会话id:如何在Alexa Skill中使用Java获取amazon用户电子邮件,java,alexa-skill,Java,Alexa Skill,我是Alexa技能发展方面的新手,我正在尝试一种Alexa用电子邮件回复的技能 我正在开发Java技能,我刚刚能够使用以下工具获取用户会话id: getSession().getUser().getUserId() 获取amzn1.ask.account.{id}作为解决方案 问题在于需要获取用户电子邮件(例如:username@gmail.com) 有什么办法吗 谢谢你的帮助 如前所述,这是通过解决的,我用来解决它的代码是: String accessToken = requestE
getSession().getUser().getUserId()
获取amzn1.ask.account.{id}
作为解决方案
问题在于需要获取用户电子邮件(例如:username@gmail.com)
有什么办法吗
谢谢你的帮助 如前所述,这是通过解决的,我用来解决它的代码是:
String accessToken = requestEnvelope.getSession().getUser().getAccessToken();
String url = "https://api.amazon.com/user/profile?access_token=" + accessToken;
JSONObject json = readJsonFromUrl(url);
String email = json.getString("email");
String name = json.getString("name");
使用JSON方法:
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
InputStream is = new URL(url).openStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
is.close();
}
}
@Override
公共可选句柄(HandlerInput){
UpsServiceClient UpsServiceClient=input.getServiceClientFactory().getUpsService().getProfileEmail();
}
如果您需要详细说明,只需遵循以下简单步骤:
调用此API,使用访问令牌获取用户配置文件。谢谢,这就是我要找的!我将发布我用来帮助所有需要它的人的代码作为答案