【问题标题】:How to get amazon user email with Java in Alexa Skill如何在 Alexa Skill 中使用 Java 获取亚马逊用户电子邮件
【发布时间】:2018-05-10 18:17:00
【问题描述】:

我是 Alexa 技能开发的新手,我正在尝试做一项技能,让 Alexa 通过我的电子邮件回复。

我正在开发 Java 技能,我刚刚能够获取用户会话 ID:

getSession().getUser().getUserId()

amzn1.ask.account.{id} 作为解决方案

问题是需要获取用户邮箱(例如:username@gmail.com)

有什么方法可以做到吗?

感谢您的帮助!

【问题讨论】:

  • 使用访问令牌调用此 API api.amazon.com/user/profile?access_token= 以获取用户配置文件。
  • 谢谢,这正是我要找的!我将发布我用来帮助每个需要它的人的代码作为答案

标签: java alexa-skill


【解决方案1】:

正如Priyam Gupta 所说,这是用api.amazon.com/user/profile?access_token= 解决的,而我用来解决它的代码是:

    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();
    }
 }

【讨论】:

    【解决方案2】:
    1. 转到您设置了 Alexa 技能的 developer.amazon 帐户,在“构建”选项卡下,您将找到左侧菜单“权限”并打开“客户电子邮件地址”权限。
    2. 转到https://alexa.amazon.com/spa/index.html#cards -> 技能 -> 你的技能 -> 选择你的技能 -> 设置 -> 管理权限 -> 打开您在第 1 点打开的所需权限并保存
    3. 在您的意图处理程序@Override public Optional<Response> handle(HandlerInput input) { UpsServiceClient upsServiceClient = input.getServiceClientFactory().getUpsService().getProfileEmail(); } 内的 java 代码中

    【讨论】:

      【解决方案3】:

      如果您需要详细说明,只需按照以下简单步骤操作:

      1. Set up Security Profile for Login with Amazon
      2. Enable Account Linking in Amazon Developer Console
      3. Add Redirect URLs to Security Profile
      4. 对 Amazon Profile API 进行 API 调用

      【讨论】:

        猜你喜欢
        • 2020-06-29
        • 2020-08-07
        • 1970-01-01
        • 2017-03-13
        • 2013-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-17
        相关资源
        最近更新 更多