我正在阅读有关为SmartHome API创建技能的内容。据我所知,Alexa首先将用户重定向到帐户链接设置中指定的“Web授权URI”。在用户认证之后,它接收应该与访问令牌交换的授权码。然后是令人困惑的部分。
Alexa是否尝试在AcceptGrant指令中将授权代码交换为一对令牌?如果是,我应该如何处理收到的令牌?我应该将它们存储在其他AWS服务的某个地方吗?如何识别令牌所属的用户?我应该使用grantee.token吗?如果这是正确的方法,那么对于每个后续请求,我应该使用请求中的令牌获取用户ID,获取分配给此用户ID的访问令牌,并尝试使用它从服务器接收数据。如果我说错了请纠正我。如果这是正确的,那么我没有看到帐户链接设置中的访问令牌URI设置在哪里使用。
我试图从开发人员文档中查看示例,但它们都跳过了完全实现AcceptGrant指令。我也找不到任何关于如何做到这一点的信息。
1条答案
按热度按时间tcbh2hod1#
我会尽量回答你的问题。关于你的第一个问题,是的,如果你试图使用发送Alexa事件权限,你需要使用AcceptGrant指令交换代码,因为AcceptGrant直接包含该代码。
关于你的第二个问题,是的,你可以安全地保存在任何地方,它不是专门在AWS环境下。
分享一些有用的链接:
https://amazon.developer.forums.answerhub.com/articles/38610/alexa-debugging-account-linking.html
https://developer.amazon.com/en-US/docs/alexa/account-linking/configure-authorization-code-grant.html
关于你的最后一个问题,这是不正确的,你需要使用grant.code,请参阅AcceptGrant指令的有效负载细节:https://developer.amazon.com/en-US/docs/alexa/device-apis/alexa-authorization.html#acceptgrant-directive-payload
希望这能帮上忙。