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

问题描述

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

怎么办?

解决方法

在启用应用程序链接(从您的应用程序开始)的过程中,我犯了一些错误。请检查您是否可能正在制作其中任何一个。

错误 -

  1. 创建新的 LWA(使用亚马逊登录)配置文件
    您不需要新的 LWA 配置文件,而应使用技能页面上权限选项卡下的 Alexa 凭据。它们具有应用-应用链接所需的正确范围 (alexa::skills:account_linking),而 LWA 配置文件不能具有此范围。

  2. 使用实时技能的开发版本
    我修改了开发版本中的帐户链接部分以指向测试部署。虽然在开发者控制台中允许这些更改,但每次绑定帐户都失败,所以我创建了一个新技能。

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

  4. 登录了错误的 Alexa 帐户
    在测试帐户链接期间进入 LWA 屏幕时,仅使用创建技能的开发人员凭据登录。这是因为此时该技能仅适用于 Alexa 开发人员帐户,其他任何人都无法使用。 (甚至不是 Beta 测试人员)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...