Google Apps Script获取项目版本遇身份验证范围不足问题
解决Apps Script调用Script API获取版本时的403权限不足问题
问题原因
你遇到的403错误核心原因是:ScriptApp.getOAuthToken()生成的访问令牌,默认不包含Script API所需的权限范围。
Apps Script会自动根据代码中使用的内置服务(比如SpreadsheetApp、DriveApp)生成对应的权限清单,但你是通过UrlFetchApp直接调用Script API的REST接口,系统无法自动识别这个外部API的权限需求,导致令牌缺少https://www.googleapis.com/auth/script.projects.readonly(读取项目版本所需)或更高权限的scope。
而Google Workspace Script Playground能正常运行,是因为它是专门的API测试工具,会主动让你选择并授权所需的权限范围,不会像普通脚本项目那样自动限制权限。
解决步骤
开启清单文件显示
在脚本编辑器右上角点击「设置」图标,勾选「显示appsscript.json清单文件」。添加所需权限范围
打开appsscript.json文件,在oauthScopes数组中添加以下两个权限:{ "oauthScopes": [ "https://www.googleapis.com/auth/script.projects.readonly", "https://www.googleapis.com/auth/script.external_request" ], // 保留文件中原有的其他配置内容 }script.projects.readonly:允许读取脚本项目的版本信息script.external_request:允许脚本通过UrlFetchApp发起外部请求
重新授权脚本
保存修改后的清单文件,点击「运行」按钮,按照提示完成新权限的授权流程。
完成以上步骤后,再次运行你的代码,就能正常获取到脚本版本信息了。
内容的提问来源于stack exchange,提问作者Mr P
相关产品推荐
相关产品推荐

