Javascript Alexa帐户链接-“链接”;无效的帐户链接凭据“;

Javascript Alexa帐户链接-“链接”;无效的帐户链接凭据“;,javascript,express,alexa,alexa-skill,alexa-account-linking,Javascript,Express,Alexa,Alexa Skill,Alexa Account Linking,我正在创建一个帐户链接Alexa技能。我得到了链接授权码并将其交换为访问令牌。然后,我尝试将所有参数:代码、访问令牌、技能ID放入Alexa技能激活API。我总是得到一个信息:“无效的帐户链接凭据” 怎么办?在启用应用程序链接(从应用程序开始)的过程中,我犯了一些错误。一定要检查一下你是不是在做这些东西 错误- 创建新的LWA(使用亚马逊登录)配置文件。 您不需要新的LWA配置文件,而是应该使用技能页面上权限选项卡下的Alexa凭据。他们具有应用程序链接所需的正确范围(alexa::skills

我正在创建一个帐户链接Alexa技能。我得到了链接授权码并将其交换为访问令牌。然后,我尝试将所有参数:代码、访问令牌、技能ID放入Alexa技能激活API。我总是得到一个信息:“无效的帐户链接凭据”


怎么办?

在启用应用程序链接(从应用程序开始)的过程中,我犯了一些错误。一定要检查一下你是不是在做这些东西

错误-

  • 创建新的LWA(使用亚马逊登录)配置文件。
    您不需要新的LWA配置文件,而是应该使用技能页面上权限选项卡下的Alexa凭据。他们具有应用程序链接所需的正确范围(
    alexa::skills:account\u linking
    ),LWA配置文件不能具有此范围

  • 使用现场技能的开发版本。
    我修改了开发版本中的帐户链接部分,以指向测试部署。尽管开发者控制台中允许进行这些更改,但每次帐户链接都失败了,所以我创造了一项新技能

  • 重用Alexa身份验证代码。
    我没有意识到,即使是一个错误的请求也会使Alexa身份验证代码无效

  • 登录到错误的Alexa帐户。
    当您在测试帐户链接期间进入LWA屏幕时,仅使用创建该技能的开发人员凭据登录。这是因为在这一点上,该技能仅适用于Alexa开发人员帐户,而不是其他任何人。(即使是测试人员也不行)

  •     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;
    });