复制可用代码后,用Apps Script OAuth2对接谷歌广告平台遇授权错误
听起来你这情况确实闹心——之前的客户表格都能正常跑OAuth拉数据,偏偏新表格卡在授权最后一步,明明能选账户、走对话流程,结果临门一脚报错。结合我用Apps Script+OAuth2库对接谷歌服务的踩坑经验,给你几个针对性的排查方向:
1. 核对OAuth2核心配置细节
- 客户端ID/密钥与重定向URI:对比运行正常的表格,确保新表格用的OAuth2客户端ID、密钥完全一致。重点检查Google Cloud Console里的重定向URI——Apps Script的格式是
https://script.google.com/macros/d/[你的脚本ID]/usercallback,必须一字不差,哪怕多了个空格或者少了个字符都会触发授权失败。 - 授权作用域(Scopes):谷歌广告API需要特定的作用域,比如
https://www.googleapis.com/auth/adwords。检查新表格脚本里setScope的参数,是不是和正常表格的完全匹配,有没有漏写或者打错的情况。
2. 排查脚本与广告账户的权限基础
- 先完成脚本基础授权:新表格的脚本可能还没获取到基础执行权限。先手动运行脚本里的任意简单函数(比如一个打印日志的测试函数),触发Apps Script自带的授权流程,确认能拿到“查看/编辑表格”这类基础权限后,再走谷歌广告的OAuth2授权。
- 确认广告账户的用户权限:你用来授权的谷歌账号,必须在对应的谷歌广告客户账户里拥有有效权限(比如标准用户、管理员权限)。如果是全新的客户账户,得先在谷歌广告后台把这个账号添加为授权用户,否则哪怕OAuth流程走完,也会因为广告账户层面的权限不足报错。
3. 清理缓存与重置授权状态
- 清除OAuth2令牌缓存:OAuth2库会缓存授权令牌,旧缓存可能导致冲突。可以加一段临时代码清除缓存:
运行后再重新走一遍授权流程。function clearOAuthCache() { const cache = CacheService.getUserCache(); cache.remove('oauth2-token-[你的服务标识]'); } - 撤销并重置应用授权:登录你的谷歌账户,进入“安全”页面找到“第三方应用访问权限”,找到对应的Apps Script项目,撤销授权后重新授权,清空可能残留的旧权限配置。
4. 检查脚本的库引用与部署
- 确认OAuth2库版本:在脚本编辑器的“资源”→“库”里,核对OAuth2库的版本是否和正常表格一致,别不小心选了旧版本或者未发布的测试版本。
- 核对脚本部署配置:如果脚本是部署为Web应用的,检查部署的权限设置(比如“仅限我自己”“特定用户”)是否和正常表格一致,错误的部署权限也可能导致授权环节出问题。
5. 排查谷歌广告API服务状态
- 偶尔谷歌广告API会出现临时波动,导致授权失败。可以去谷歌广告API的状态页面确认服务是否正常,或者用API测试工具验证授权流程,排除API本身的问题。
我之前遇到过类似的情况,就是新表格的重定向URI少了脚本ID里的一个字符,修正后就立刻正常了。你可以按上面的步骤逐一排查,应该能定位到问题。
内容的提问来源于stack exchange,提问作者Cameron Wilson
相关产品推荐
相关产品推荐

