我在请求客户联系信息,以我的能力为例发送电子邮件时观察到一种非常奇怪的行为。
我已经实现了与文档中提到的完全相同的方法。我已经在技能的“权限”标签中提供了该权限(用于电子邮件)。我已经在应用程序中授予了权限,并通过代码授予了以下REST API,以通过传递Bearer令牌(JSON输入中收到的权限对象中的同意令牌)来获取用户的电子邮件ID。
https://api.eu.amazonalexa.com/v2/accounts/~current/settings/Profile.email
但是奇怪的是,最近我收到了这个回复
{'code':'ACCESS_DENIED','message':'身份验证失败 原因:TOKEN_INVALID'}
我最近遇到了这个问题,有时API可以正常工作,但有时却不能,并且我收到上述错误。
有人可以帮忙吗?
答案 0 :(得分:0)
我正在调用以下REST API来获取用户的电子邮件ID 通过传递Bearer令牌(在许可权对象中收到同意令牌) 在JSON输入中)
根据此doc,已弃用consentToken
,应改用apiAccessToken
。
重要提示:来自Alexa的请求中也可能包含
consentToken
session.user.permissions
和context.System.user.permissions
。这个 不推荐使用的属性。继续使用consentToken
的现有技能 工作,但应使用context.System.apiAccessToken
属性 代替。
因此,accessToken = this.event.context.System.apiAccessToken
。
还要仔细检查标题:{"Authorization": "Bearer " + apiAccessToken}
,确保Bearer
和apiAccessToken
之间有空格。