使用服务账号执行GCP scripts().run时遭遇404错误求助
以下是几个容易遗漏的排查点,按优先级排序:
补全必要的OAuth范围
你当前的权限范围里缺少https://www.googleapis.com/auth/script.execution——这个是外部调用Apps Script可执行部署的核心权限,script.external_request只是允许脚本内部发起外部请求,和外部调用脚本完全无关。必须把这个范围加入到你的权限列表里。确认调用URL的正确性
别把项目编号和脚本ID搞混!正确的调用URL格式是:https://script.googleapis.com/v1/scripts/{你的脚本ID}:run,这里的{你的脚本ID}是Apps Script编辑器右上角的那个字符串(不是GCP项目编号)。同时要确保你调用的是已发布的API可执行部署,草稿部署仅对开发者本人开放,服务账号调用会直接404。检查部署权限与共享设置
除了把脚本共享给服务账号邮箱,还要在「管理部署」里确认对应部署的权限设置是「所有Google账号用户」(或者更宽松的权限)。另外,要保证服务账号所属的GCP项目和Apps Script绑定的GCP项目是同一个——跨项目调用会触发权限拦截,表现为404。验证GCP API启用状态
去你服务账号关联的GCP项目控制台,搜索并确认「Apps Script API」已经启用。未启用API的情况下,所有调用都会返回404错误。检查IAM角色配置
在GCP项目的IAM页面,给服务账号添加「Apps Script API Executor」角色,确保它拥有执行脚本部署的权限。仅靠脚本共享可能不足以让服务账号完成调用。
内容的提问来源于stack exchange,提问作者some guy

