You need to enable JavaScript to run this app. 使用refresh token仍报令牌过期/撤销及Bad Request的Google Ads API接入问题
优惠活动
大模型
产品
解决方案
定价
更多

使用refresh token仍报令牌过期/撤销及Bad Request的Google Ads API接入问题

核心异常产生原因

  • 测试状态有效期限制:若OAuth应用未完成生产发布、仍处于测试阶段,所生成的refresh token固定7天后自动失效。如果授权用户不在应用配置的测试用户列表内,token的实际生效时间会进一步缩短,完全匹配“初次接入可稳定调用数天、重新授权后仅能维持1天正常”的表现。
  • 多token自动冲突规则:同一个Google账号对应同一个OAuth客户端,最多仅能保留5个有效refresh token,当反复走授权流程生成新token时,最早生成的token会被自动作废。反复操作的过程会不断挤掉仍在有效期的token,最终陷入“失效-重新授权-再次快速失效”的循环。
  • 风控触发吊销:满足任意以下场景时,Google会直接吊销已生成的refresh token,触发invalid_grant: Token has been expired or revoked报错:
    • 关联账号修改密码、在第三方授权管理页主动移除对该OAuth应用的授权
    • 调用API的网络出口IP频繁变动、跨地域跳变,被判定为异常访问
    • 6个月内完全未使用该refresh token调用接口,触发长期闲置自动过期
  • invalid_grant: Bad Request 专属触发场景:短时间内高频触发授权、刷新token接口,触发Google的接口速率限制;或配置文件内的client_id、client_secret参数存在拼写错误、首尾多余空格,导致请求参数校验不通过。

对应落地解决方法

  • 调整OAuth应用发布状态:在Google Cloud控制台的OAuth应用设置页面,将应用从测试状态切换为生产状态。切换完成后生成的refresh token将不再受7天有效期限制,可实现长期有效、免重复授权。
  • 规范refresh token的使用流程:日常调用时优先使用已存储在配置文件中的refresh token,仅在token确认被永久吊销时再走重新授权流程,避免生成过多token触发自动作废规则。
  • 规避风控吊销场景:
    • 部署服务时固定API调用的出口网络IP,避免频繁切换代理、跨地域节点
    • 不要随意调整关联Google账号的安全配置,定期在账号安全页确认对应OAuth应用的授权状态未被移除
    • 不要将配置文件、refresh token同步到公共代码仓库、公开可访问的存储位置,避免被恶意爬取触发批量吊销
  • 处理invalid_grant: Bad Request报错:
    • 逐行校验配置文件内的client_id、client_secret、refresh_token字段,确认无拼写错误、无首尾多余空格
    • 暂停短时间内的反复授权操作,等待1~2小时的接口限制解除后,再重新走一次完整的授权流程生成新的refresh token
    • 如果仍持续报错,可在Google Cloud控制台重新创建一个桌面端类型的OAuth客户端,使用全新的client_id、client_secret重新走授权流程,通常可彻底解决参数层面的校验异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 06:24:00