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

如何通过REST API自动生成Google OAuth刷新令牌?是否需切换至服务账号?

解决Google OAuth invalid_grant 错误与离线转化上传自动化方案

问题概述

通过两次REST API调用批量上传Google离线点击转化数据(一次生成Access Token,一次上传转化数据),原本运行正常,数周后生成Access Token时突然收到JSON格式的invalid_grant错误。未收到Google通知,且官方文档列出的Refresh Token过期原因均不匹配当前场景。已通过手动生成新Refresh Token解决问题,但需实现自动化处理或评估OAuth类型切换方案。

解决方案

1. 自动化处理invalid_grant(Web应用OAuth场景)

由于Refresh Token的生成必须经过用户授权流程,无法直接通过REST API自动生成,但可实现以下自动化流程:

  • 在代码中捕获invalid_grant响应
  • 用无头浏览器模拟预配置的用户授权流程,获取新的Refresh Token
  • 将新Token存储到安全配置位置,后续请求自动调用新Token

注意:需确保授权流程符合Google OAuth规范,避免触发安全拦截机制。

2. 切换至服务账号OAuth(推荐方案)

若你的场景是无用户交互的服务器端自动化任务,服务账号是更稳定的选择:

  • 服务账号通过JSON密钥文件验证身份,无需依赖Refresh Token,不存在过期问题
  • 可直接调用Google Ads API完成离线转化上传
  • 配置步骤:
    • 在Google Cloud控制台创建服务账号
    • 在Google Ads账号中添加服务账号邮箱为授权用户,并分配对应权限
    • 使用服务账号密钥文件生成Access Token,发起转化上传请求

补充说明

  • 未匹配官方文档的invalid_grant错误,可能是Google未明确列出的安全机制触发(如长期闲置的Refresh Token被回收、IP地址变更等)
  • 服务账号适合自动化后台任务,相比Web应用OAuth,无需维护Refresh Token的生命周期,稳定性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 03:45:40