提取到 alexa 技能激活 api 不起作用

Fetch to alexa skill activation api does not work

我正在创建一个带有帐户链接的 Alexa 技能。我设法获得了访问令牌,但现在我尝试调用 Alexa 技能激活 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));

我该怎么办?

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

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

文档明确指出此 API 调用应来自 'back-end server,',因此如果它是 browser-based 提取,则您可能有罪魁祸首。