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

Google Analytics API刷新令牌获取访问令牌时遇invalid_grant错误

解决Google OAuth Refresh Token返回"invalid_grant"的问题

我之前也碰到过一模一样的问题,折腾了好一阵才找到原因,给你列几个最常见的排查方向:

1. Refresh Token已被主动撤销或失效

Google的refresh token理论上不会自动过期,但有几种情况会导致它直接失效:

  • 你在Google账号的安全设置 → 第三方应用访问权限里移除了对这个应用的授权;
  • 账号密码被修改,或者开启了两步验证后没有重新完成授权;
  • 应用的OAuth客户端配置(Client ID/Client Secret)被修改了——之前生成的refresh token和新的客户端信息不匹配,直接作废。

解决办法:
重新走一次授权流程,务必确保授权请求里加上access_type=offline参数(这是获取refresh token的必要条件),拿到新的refresh token后再测试刷新。

2. 刷新请求的参数有误

很多时候是请求格式或参数拼写错误导致的,正确的刷新请求必须包含以下核心参数:

POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token
&client_id=你的客户端ID
&client_secret=你的客户端密钥
&refresh_token=存储的refresh token

重点检查:

  • grant_type必须严格是refresh_token,不能拼写错误;
  • Client ID和Client Secret要和获取refresh token时完全一致,别复制错了字符或多了空格;
  • Refresh Token有没有被截断、格式错误(比如存储时不小心加了换行符)。

3. 账号或域的安全限制

如果你的测试账号属于企业Google Workspace域,可能管理员设置了第三方应用的访问限制,或者账号开启了高级安全保护策略,导致refresh token无法正常使用。

解决办法:
先用个人Google账号重新授权测试,排除域权限的问题;如果是企业账号,联系管理员确认应用是否在允许访问的列表里。

4. 重复刷新的并发问题(少见)

虽然Google允许重复使用同一个refresh token,但如果短时间内多次并发请求刷新,可能会触发安全机制导致token失效。本地测试时尽量避免同时发起多个刷新请求。

先从上面这几点排查,一般都能解决问题。如果还是不行,可以把你的刷新请求代码片段贴出来,再帮你细查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:43:30