如何使用亚马逊的 Alexa API 为技能设置帐户链接?
Posted
技术标签:
【中文标题】如何使用亚马逊的 Alexa API 为技能设置帐户链接?【英文标题】:How to Set Up Account Linking for a Skill using Alexa API from Amazon? 【发布时间】:2017-04-08 11:29:46 【问题描述】:我正在尝试弄清楚如何将技能与自定义用户帐户相关联。这是文档中的内容:
隐式授权的帐户链接流程(用于自定义技能):
-
在 Alexa 应用程序中,用户启用该技能。
该应用会显示您的
应用内的登录页面,使用您的授权 URL
在开发者门户上注册技能时提供。什么时候
配套应用调用此 URL,它包括 state
、client_id
、
response_type
和 scope
作为查询字符串参数。
state
由 Alexa 服务在帐户期间使用
client_id
是您在开发者门户中为技能设置帐户链接时定义的值。
对于隐式授权流,response_type
始终为 token
。
scope
是访问范围的可选列表,指示请求的访问级别。在为您的技能启用帐户链接时,您定义要支持的范围集。
redirect_uri
是用户通过身份验证后服务将用户重定向到的 URL。
用户使用他们的正常凭据登录您的站点。
您的服务对用户进行身份验证,然后生成一个访问令牌,用于在您的系统中唯一标识该用户。 您的服务将用户重定向到指定的redirect_uri
,并在URL 片段中传递state
、access_token
和token_type
。
Alexa 服务验证返回的信息,然后为 Alexa 用户保存 access_token
。
用户的 Alexa 帐户现已链接到您服务中的帐户,并且可以使用该技能。
这是我从亚马逊得到的:
"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
有什么想法吗?
【问题讨论】:
【参考方案1】:我遇到了类似的问题,我不得不在令牌之前使用哈希而不是 & 符号。我的重定向网址是:
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
【讨论】:
token 可以是你想要的任何东西,当用户进行语音交互时,它会由 Alexa 传回给你。 OAuth 令牌可能是一种安全、标准的方式。以上是关于如何使用亚马逊的 Alexa API 为技能设置帐户链接?的主要内容,如果未能解决你的问题,请参考以下文章
alexa 在技能调用时发送 SessionEndedRequest