You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LWA授权码兑换AccessToken失败:invalid_grant问题求助

Alexa Skill LWA Accept Grant 400错误排查及疑问解答

一、"invalid_grant"错误排查

针对你遇到的The request has an invalid grant parameter : code错误,按以下方向逐一排查:

1. 检查code的有效性

  • Accept Grant指令返回的code是一次性、短有效期(通常5分钟内)的,重复使用或超时都会触发该错误。确保你使用的是刚收到的、未用过的code。
  • 确认code提取完整,没有截断、多空格或字符遗漏,尤其是从AcceptGrant的payload里解析时别出错。

2. 验证client_id/secret与技能的绑定关系

  • 新建的LWA安全配置必须和当前Alexa Skill正确关联:进入Alexa开发者控制台,打开技能的「权限」设置,确认选中的是你刚创建的LWA配置,而非旧配置或其他无关配置。
  • 核对client_id和client_secret是否属于同一个LWA配置,别把不同配置的凭据混在一起用。

3. 修正请求格式问题

你设置了content-type: application/x-www-form-urlencoded,但axios默认会将JS对象转为JSON格式,而非表单格式,这会导致参数解析错误。修改请求代码,用qs.stringify()转换参数:

const qs = require('qs');
const data = {
  "grant_type": grant_type,
  "client_id": client_id,
  "client_secret": client_secret,
  "code": code,
};

let authResponse = await axios.post(url, qs.stringify(data), {
  headers: {'content-type': 'application/x-www-form-urlencoded'}
});

同时确认请求URL是正确的LWA令牌端点:https://api.amazon.com/auth/o2/token,别混淆测试/生产环境。

4. 确认grant_type拼写正确

确保grant_type的值是准确的authorization_code,没有拼写错误(比如少下划线、字母拼写错误)。

二、关于client_id/client_secret不一致的疑问

LWA的client_id和client_secret是固定值,不会随时间自动变更。出现已发布技能Lambda中的值与控制台不一致的情况,通常是以下原因:

  • 之前的技能使用的是另一个LWA安全配置,后续控制台的配置被替换/修改,但Lambda代码未同步更新。
  • 误创建了多个LWA安全配置,当前控制台显示的是新配置,而Lambda仍在使用旧配置的凭据。
  • 检查技能「权限」设置里关联的LWA配置,确认和Lambda中使用的是否为同一个。

内容的提问来源于stack exchange,提问作者JSNerd01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:52:40