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

无法通过Google OAuth获取refresh token问题求助

解决思路

以下是针对你遇到的invalid_grant错误及无法获取refresh token问题的排查方向:

  • 确认授权参数的添加位置
    必须将access_type=offline和prompt=consent添加到获取授权码(code)的GET请求URL中,而非后续获取token的POST请求里。只有在用户授权阶段传递这两个参数,平台才会返回带有离线访问权限的code,进而兑换到refresh token。同时确保授权URL的response_type参数值为code(授权码模式)。

  • 验证token请求的参数一致性
    兑换token的POST请求中,client_id、client_secret、redirect_uri必须与授权请求中的完全一致(包括大小写、末尾斜杠等细节)。另外,grant_type必须设为authorization_code,且使用的code是全新未使用过的(code仅能兑换一次,重复使用会触发invalid_grant)。

  • 检查应用权限配置
    登录开发者后台,确认你的应用已开启**离线访问(offline access)**权限。部分平台需要在控制台中手动启用该权限,否则即使传递了access_type=offline也无法获取refresh token。

  • 排查CURL请求格式
    确保兑换token的POST请求使用application/x-www-form-urlencoded格式传递参数,而非JSON。可以通过CURL的CURLOPT_POSTFIELDS直接传递键值对字符串(如"client_id=xxx&client_secret=xxx&code=xxx..."),而非数组或JSON字符串。同时打印完整的请求响应信息(用curl_getinfo()获取HTTP状态码,解析响应体的错误详情),很多invalid_grant会附带具体原因(如code过期、权限不足)。

  • 确认code的有效性
    授权code的有效期通常很短(如10分钟),若获取code后未立即发起token请求,code过期也会触发invalid_grant。确保拿到code后第一时间执行兑换操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:18:14