如何使用亚马逊的 Alexa API 为技能设置帐户链接?

How to Set Up Account Linking for a Skill using Alexa API from Amazon?

我正在尝试弄清楚如何 link 使用自定义用户帐户的技能。以下是文档中的内容:

用于隐式授予的帐户 linking 流量(用于自定义技能):

  1. 在 Alexa 应用程序中,用户启用了该技能。
  2. 该应用程序显示您的 使用 授权 URL 就在应用内登录页面 在开发人员门户上注册您的技能时提供。什么时候 配套应用调用此 URL,它包括 stateclient_idresponse_typescope 作为查询字符串参数。

    • Alexa 服务在帐户 linking 过程中使用该状态。您的页面需要跟踪此值,因为您必须稍后将其传回。
    • state账户期间使用Alexa服务
    • client_id 是您在开发人员门户中为该技能设置帐户时定义的值 link。
    • 对于隐式授权流,response_type 始终是 token
    • scope 是可选的访问范围列表,指示请求的访问级别。在为您的技能启用帐户 linking 时,您可以定义要支持的范围集。
    • redirect_uri 是 URL,一旦用户通过身份验证,您的服务会将用户重定向到该地址。
  3. 用户使用您站点的正常凭据登录。

  4. 您的服务对用户进行身份验证,然后生成一个访问令牌,在您的系统中唯一标识用户。
  5. 您的服务将用户重定向到指定的 redirect_uri 并传递 URL 片段中的 stateaccess_tokentoken_type
  6. Alexa 服务验证返回的信息,然后为 Alexa 用户保存 access_token
  7. 用户的 Alexa 帐户现已 link 编辑到您服务中的帐户,技能可以使用了。

这是我从亚马逊得到的:

{
"client_id":"my-client-id",
"response_type":"token",
"state":"some_long_string",
"redirect_uri":"https:\/\/subdomain.amazon.com\/spa\/skill\/account-linking-status.html?vendorId=W5TGH673R
}

根据我在上面阅读的内容,我将重定向回:

https://subdomain.amazon.com/spa/skill/account-linking-status.html?vendorId=W5TGH673R&state=same_long_string&access_token=something-I-made-up&token_type=Bearer

不幸的是,这似乎不起作用。基本上我得到:Unable to link your skill

有什么想法吗?

我 运行 遇到了类似的问题,我不得不在令牌前使用散列而不是符号。我的重定向 url 是:

https://subdomain.amazon.com/spa/skill/account-linking-status.html?vendorId=W5TGH673R#access_token=something-I-made-up&state=same_long_string&token_type=Bearer