javascript - 获取到 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));
我该怎么办?
解决方案
您将 react 添加为标签,而 fetch 更传统地是浏览器 API(尽管它可以导入节点),所以我猜您可能正在浏览器中执行此操作。
这将导致 CORS 问题,因为在浏览器中使用 fetch 将始终将 Origin 标头添加到 fetch 请求中,从而触发 CORS 检查。这就是为什么许多在 cURL 中工作的请求会因 fetch 而中断。
文档特别说这个 API 调用应该来自“后端服务器”,所以如果它是基于浏览器的获取,那么你可能有罪魁祸首。
推荐阅读
- ios - 触摸时缩小 UICollectionViewCell - delaysContentTouches 问题
- android - 未使用 android WorkManager 启动后台服务
- mongodb - MongoDB聚合问题排序对象字段
- android - Android LiveData:作为方法或变量提供的 LiveData 之间的区别
- python - 如何在 Python 中的框前显示文本?
- html - 视频未在 html 中显示保持空白或黑色
- delphi - 在 FMX 中如何获取 TWebBrowser 控件的当前 URL?
- c# - 创建动态爬升方法
- spring-boot - beans.factory.UnsatisfiedDependencyException:创建具有名称的 bean 时出错
- excel - 返回列与所选颜色匹配的行 EXCEL