如何无需用户验证从OAuth2获取Google Ads API刷新令牌?
解决Google Ads API脚本Refresh Token频繁过期的问题
核心原因
你的应用处于「外部-测试中」状态,Google对这类OAuth应用的refresh token有7天有效期限制,这是平台的安全规则,所以每周都得手动更新。
可行解决方案
1. 将应用发布为生产状态
把应用提交审核并通过后,refresh token就会变成长期有效(除非用户主动撤销授权),这时候就不用再手动重复授权了。不过发布需要准备合规的隐私政策、应用描述等材料,得符合Google的审核要求。
2. 改用服务账号授权(无需用户交互)
如果不想走应用发布流程,服务账号是更适合无人值守cron任务的方案:
- 在Google Cloud控制台创建服务账号,下载对应的JSON密钥文件。
- 登录Google Ads账号,把服务账号的邮箱地址添加为授权用户,并配置必要的API访问权限。
- 脚本中直接通过服务账号密钥生成access token,不需要依赖refresh token,全程无需用户手动点击「Continue」或「Accept」。
关于跳过手动授权的说明
没有办法绕过测试应用的手动授权步骤——Google对测试状态的外部应用有严格的安全限制,必须用户主动确认授权才能获取refresh token,而且这个token的7天有效期无法通过其他手段延长。只有发布为生产应用,或改用服务账号,才能摆脱每周手动操作的麻烦。
内容的提问来源于stack exchange,提问作者Kostas
相关产品推荐
相关产品推荐

