Android应用中Alexa应用间账号关联:Skill Activation API报错求助
Alexa应用内账号关联与技能激活400错误排查建议
问题场景
我在Android应用中实现Alexa应用到应用的账号关联,执行步骤如下:
- 完成LWA fallback URL配置,使用Alexa自定义技能账号关联页面获取的Client ID
- 在浏览器打开LWA URL后,完成亚马逊登录,确认技能授权(点击“允许”按钮)
- 获取Auth-Token后,调用token API拿到Access Token
- 调用Skill Activation API:
POST /v1/users/~current/skills/{skillId}/enablement HTTP/1.1 Host: api.amazonalexa.com, api.eu.amazonalexa.com, api.fe.amazonalexa.com Content-Type: application/json Authorization: "Bearer {Amazon Access Token}" { "stage": "skill stage", "accountLinkRequest": { "redirectUri": "https://yourRedirectURI", "authCode": "Your user's authorization code from your authorization server", "type": "AUTH_CODE" } }
使用的参数值:
- Amazon access token:从Amazon token API获取
- redirectUri:
https://pitangui.amazon.com/api/skill/link/XXXXXXXXXXX - authCode:成功登录亚马逊后获取
但调用API时收到400错误请求,返回信息:
{"message":"Invalid account linking credentials"}
排查建议
1. 核对authCode的来源与有效性
- 注意:Skill Activation API中的
authCode要求是你的自有授权服务器生成的代码,而非亚马逊LWA登录返回的授权码。确认你传入的代码是否符合这个要求。 - 检查
authCode是否过期,这类授权码通常有效期较短(如5分钟),确保调用API时代码仍在有效期内。
2. 验证redirectUri的一致性
- 确认
redirectUri与你在Alexa技能控制台账号关联设置中填写的重定向URI完全一致,包括协议、域名、路径,不能有任何字符差异(比如大小写、末尾斜杠)。 - 检查该URI是否已在亚马逊开发者控制台的LWA配置中被添加为允许的重定向URI。
3. 检查Amazon Access Token的权限
- 确保获取的Access Token包含
alexa::skills:enable权限,可通过亚马逊token introspection API验证权限范围。 - 确认Access Token未过期,过期token会导致权限验证失败。
4. 修正Skill Activation API的参数格式
stage参数需填写实际值:development或live,与你的技能部署阶段匹配,不能使用占位符文本"skill stage"。- 检查请求体的JSON格式,确保引号闭合、逗号无多余,避免语法错误导致请求解析失败。
5. 验证账号关联配置一致性
- 确认Alexa技能控制台中账号关联的授权类型设置为
Auth Code Grant,与API中type: "AUTH_CODE"匹配。 - 检查技能的Client ID、Client Secret是否与LWA配置中的信息一致,避免两端配置冲突。
内容的提问来源于stack exchange,提问作者Avinash tiwari
相关产品推荐
相关产品推荐

