【问题标题】:How to get amazon email in an alexa sdk V2 skill如何在 alexa sdk V2 技能中获取亚马逊电子邮件
【发布时间】:2020-06-29 16:09:46
【问题描述】:

我正在尝试开发一项 alexa 技能,我想获取用户的电子邮件,然后将其与数据库的电子邮件进行比较。我在网上找到了很多示例,但它们都是用不再支持的 SDK v1 编写的。谁能帮帮我?

【问题讨论】:

    标签: javascript aws-lambda alexa alexa-skill customer-account-data-api


    【解决方案1】:

    您必须请求许可才能收集客户信息。这可以在 Alexa 开发人员控制台中完成。在您的技能范围内,转到构建 > 权限,您将看到许多以设备地址、客户名称和客户电子邮件开头的项目。你需要选择它并培养你的技能。

    现在,当用户添加您的技能时,他们将有机会让您访问他们的电子邮件地址和您请求的任何其他项目。

    获得权限后,您现在可以调用 Customer Profile API。

    这将是两个步骤。

    首先获取访问Token:

    accessToken = this.event.context.System.apiAccessToken;
    

    需要注意的是,使用token时的语法是:

    Bearer < ACCESS_TOKEN > 
    

    现在您可以使用令牌通过以下请求从 API 请求您要查找的信息:

    Host: api.amazonalexa.com
    Accept: application/json
    Authorization: Bearer MQEWY...6fnLok
    GET https://api.amazonalexa.com/v2/accounts/~current/settings/Profile.email
    

    此过程和其他信息可以在开发者文档中找到 here

    【讨论】:

      【解决方案2】:

      @raholling 好的,按照您的指示并阅读文档后,我编写了这段代码,但它在 AWS 上或在 alexa 开发人员的口语测试中都不起作用。我做错了什么?
      var accessToken = this.event.context.System.apiAccessToken;

      Bearer < ACCESS_TOKEN > 
      
      Host: api.amazonalexa.it
      Accept: application/json
      Authorization: Bearer MQEWY...6fnLok
      GET https://api.amazonalexa.com/v2/accounts/~current/settings/Profile.email;
      

      【讨论】:

      • 嘿抱歉。因此,获取令牌是代码,另一部分只是关于如何执行此操作的说明。我很抱歉。您需要在代码中进行 API 调用。如果您使用的是说节点,您可以使用库请求(技术上已弃用)或说节点获取。你只是在这里打个电话应该有足够的信息让你继续得到npmjs.com/package/node-fetch
      猜你喜欢
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2018-05-10
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      相关资源
      最近更新 更多