Alexa要求客户联系方式被拒绝

时间:2019-08-12 06:06:01

标签: amazon-web-services aws-lambda alexa alexa-skills-kit alexa-skill

我在请求客户联系信息,以我的能力为例发送电子邮件时观察到一种非常奇怪的行为。

我已经实现了与文档中提到的完全相同的方法。我已经在技能的“权限”标签中提供了该权限(用于电子邮件)。我已经在应用程序中授予了权限,并通过代码授予了以下REST API,以通过传递Bearer令牌(JSON输入中收到的权限对象中的同意令牌)来获取用户的电子邮件ID。

https://api.eu.amazonalexa.com/v2/accounts/~current/settings/Profile.email

但是奇怪的是,最近我收到了这个回复

  

{'code':'ACCESS_DENIED','message':'身份验证失败   原因:TOKEN_INVALID'}

我最近遇到了这个问题,有时API可以正常工作,但有时却不能,并且我收到上述错误。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

  

我正在调用以下REST API来获取用户的电子邮件ID   通过传递Bearer令牌(在许可权对象中收到同意令牌)   在JSON输入中)

根据此doc,已弃用consentToken,应改用apiAccessToken

  

重要提示:来自Alexa的请求中也可能包含consentToken   session.user.permissionscontext.System.user.permissions。这个   不推荐使用的属性。继续使用consentToken的现有技能   工作,但应使用context.System.apiAccessToken属性   代替。

因此,accessToken = this.event.context.System.apiAccessToken

还要仔细检查标题:{"Authorization": "Bearer " + apiAccessToken},确保BearerapiAccessToken之间有空格。