我正在创建一个带有帐户链接的Alexa技能。我拿到了链接授权码,并用它交换了一个访问令牌。然后,我尝试将所有参数:代码、访问令牌、技能ID放入Alexa技能激活API。我总是得到按摩:;无效的帐户链接凭据";。
var clientServerOptions = {
uri: `https://api.amazonalexa.com/v1/users/~current/skills/${SkillId}/enablement`,
body: JSON.stringify({
stage: "development",
accountLinkRequest: {
redirectUri: "https://api.amazon.com/auth/o2/token",
authCode: req.body.code, //the code I got from the start
type: "AUTH_CODE"
}
}),
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${req.body.access_token}` //my access token
}
}
request(clientServerOptions, function (error, response) {
if(error != null) {
console.error(error);
} else {
console.log(response.body);
}
return;
});
该怎么办?
在启用应用程序-应用程序链接(从您的应用程序开始(的过程中,我犯了一些错误。一定要检查一下你是否会制作这些。
错误-
-
创建新的LWA(使用亚马逊登录(配置文件
您不需要新的LWA配置文件,而是应该使用技能页面上权限选项卡下的Alexa凭据。它们具有应用程序应用程序链接所需的正确作用域(alexa::skills:account_linking
(,LWA配置文件不能具有此作用域。 -
使用实时技能的开发版本
我修改了开发版本中的帐户链接部分,以指向测试部署。尽管开发者控制台中允许这些更改,但每次帐户链接都失败了,所以我创建了一个新技能。 -
重复使用Alexa Auth代码
我没有意识到,即使是一个错误的请求也会使Alexa Auth Code失效。 -
登录错误的Alexa帐户
在测试帐户链接期间,当您进入LWA屏幕时,仅使用创建技能的开发人员凭据登录。这是因为在这一点上,该技能只适用于Alexa开发者帐户,而不适用于其他任何人。(甚至不是测试版测试人员(