【问题标题】:403 Forbidden response from Alexa while using Alexa location API使用 Alexa 位置 API 时 403 禁止来自 Alexa 的响应
【发布时间】:2018-07-06 09:20:04
【问题描述】:

当我尝试通过 Amazon 位置 API 获取位置详细信息时,我收到 403 Forbidden。

我已启用“请求用户访问资源和功能”。但我仍然收到 403 Forbidden 响应?

【问题讨论】:

  • 请将您的代码添加到您的原始帖子中,它不适合 cmets。
  • 请edit你的代码进入问题。

标签: alexa alexa-skills-kit


【解决方案1】:

apiAccessToken 包含在对您技能的所有请求中,但这并不意味着您可以访问资源。您必须在您的 alexa 技能的Settings 菜单下明确授予对您技能的访问权限,或者您必须向用户发送许可卡以获得同意。

在 node sdk 中,您可以像这样发送权限卡:

return handlerInput.responseBuilder
      .speak(speechOutput)
      .withAskForPermissionsConsentCard(['read::alexa:device:all:address'])
      .getResponse();

其中read::alexa:device:all:address 是Device Full Address 的权限值。

授予权限后,使用deviceId 和apiAccessToken 向指定的apiEndpoint 发出GET 请求

完整地址的端点是:/v1/devices/*deviceId*/settings/address

国家/地区和邮政编码:/v1/devices/*deviceId*/settings/address/countryAndPostalCode

更多信息here

希望这会有所帮助!

【讨论】:

  • 尽管我已在 Alexa 开发人员控制台中授予权限,但我得到了 403。它只在技能发布时有效吗?我应该如何测试它?有没有办法在 jwt 令牌中验证是否包含权限?
  • 当您在开发者门户中启用它并且该技能的用户必须从 Alexa 应用程序中明确授予位置权限。您可以使用 apiAcessToken 和 apiEndpoint 对其进行测试。
  • 在授予权限后也遇到此 403 错误。这里和 Alexa 开发门户上有多个帖子,所以这可能是亚马逊的错误。
  • 我也得到了 403。奇怪的是谷歌为我的技能提供了一个有效的 accessToken,当我在技能中使用该令牌时,我得到一个 403。但是当我使用完全相同的令牌时从我的本地开发箱做一个简单的 Https GET,它工作正常。
  • @Patrick 你能检查一下你给的权限和你使用的权限值是否相同。
猜你喜欢
  • 2020-12-24
  • 1970-01-01
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多