首页 > 解决方案 > 获取到 alexa 技能激活 api 不起作用

问题描述

我正在创建带有帐户链接的 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));

在此处输入图像描述

我该怎么办?

标签: javascriptreactjsfetchalexaalexa-skill

解决方案


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

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

文档特别说这个 API 调用应该来自“后端服务器”,所以如果它是基于浏览器的获取,那么你可能有罪魁祸首。


推荐阅读