【问题标题】:Fetch to alexa skill activation api does not work获取到 alexa 技能激活 api 不起作用
【发布时间】:2021-04-10 12:10:19
【问题描述】:

我正在创建一个带有帐户链接的 Alexa 技能。我设法获得了访问令牌,但现在我尝试调用 Alexa Skill Activation API,但总是出现错误。 我把我的代码和我的错误放在这里:

  fetch(`https://api.amazonalexa.com/v1/users/~current/skills/{SkillId}/enablement`, {
    method: 'post',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${access_token}`
    },
    body: JSON.stringify({
      stage: "development",
      accountLinkRequest: {
        redirectUri: "https://my.url.com/alexa/",
        authCode: code,
        type: "AUTH_CODE"
      }
    })   
  }).then(res=>res.json()).then(response=>{
    alert(JSON.stringify(response));
  }).catch(err=>alert(err));

我该怎么办?

【问题讨论】:

  • 它是正确的端点吗?根据用户/您的位置,它可能是 api.eu.amazonalexa.comapi.fe.amazonalexa.com
  • 您好,您是如何获得在请求正文中使用的用户身份验证代码的?谢谢

标签: javascript reactjs fetch alexa alexa-skill


【解决方案1】:

您将 react 作为标签添加,而 fetch 是更传统的浏览器 API(尽管它可以导入节点),所以我猜您可能在浏览器中执行此操作。

这将导致 CORS 问题,因为在浏览器中使用 fetch 将始终向 fetch 请求添加 Origin 标头,从而触发 CORS 检查。这就是为什么许多在 cURL 中工作的请求会因 fetch 而中断。

文档明确指出此 API 调用应来自“后端服务器”,因此,如果它是基于浏览器的提取,则可能是罪魁祸首。

【讨论】:

  • 你确定没有任何方法可以从浏览器调用它吗?
  • 我只是说你不能在浏览器中使用 fetch 来进行这个调用。 :-)
猜你喜欢
  • 2023-01-24
  • 2017-11-29
  • 2020-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多