【问题标题】:Alexa Request Customer contact Access DeniedAlexa 请求客户联系访问被拒绝
【发布时间】:2019-12-18 17:53:50
【问题描述】:

我在请求客户联系信息时观察到一个非常奇怪的行为,在我的技能案例中是电子邮件。

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

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

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

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

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

有人可以帮忙吗?

【问题讨论】:

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


    【解决方案1】:

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

    根据这个docconsentToken已经被弃用了,你应该改用apiAccessToken

    重要提示:来自 Alexa 的请求还可能包含 consentToken session.user.permissionscontext.System.user.permissions。这 属性已弃用。使用consentToken的现有技能继续 工作,但应该使用context.System.apiAccessToken 属性 而是。

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

    另外,请仔细检查您的标题:{"Authorization": "Bearer " + apiAccessToken},确保您在 BearerapiAccessToken 之间有一个空格。

    【讨论】:

    • 两个令牌都拒绝了相同的访问。我也尝试使用 apiAccessToken 。得到相同的响应。
    • 它的行为不恰当,就像它在我的 android 设备上运行良好,但在我的朋友 iphone 中出现错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    相关资源
    最近更新 更多