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

通过Node.js API调用Google Apps Script函数失败:请求实体未找到

问题排查与解决方案

核心问题:scripts.run找不到的是已部署的API可执行版本

你调用script.projects.get能成功,说明脚本项目本身存在且有权限访问,但scripts.run调用的是你部署的「API可执行文件」而非项目本身,出现“Requested entity was not found”通常是以下原因:

1. 部署的API可执行文件配置失效

  • 重新部署脚本为API可执行文件:
    • 打开Apps Script项目,点击右上角「部署」→「新部署」
    • 选择类型为「API可执行文件」
    • 访问权限设置:选择「仅限特定用户」,添加你的服务账号邮箱(格式类似xxx@xxx.iam.gserviceaccount.com)
    • 点击「部署」,确保部署状态为生效状态
  • 注意:如果旧部署被删除或权限变更,即使scriptId正确,scripts.run也会找不到实体

2. 作用域配置错误

你之前用script.projects仅能读取项目元数据,无法执行脚本;错误添加https://www.googleapis.com/auth/script导致凭证无效,是因为该作用域权限过大且未匹配服务账号的权限范围。

正确的最小必要作用域:https://www.googleapis.com/auth/script.execution

  • 修改Google客户端初始化代码,将作用域替换为上述值
  • 确认服务账号密钥文件路径正确、无权限问题

3. 测试阶段可选调整

如果是测试需求,可以在请求中添加devMode: true,直接调用最新脚本代码(无需依赖已部署版本),但需要服务账号对脚本项目有编辑权限:

const request = {
  scriptId: '<my_script_id>',
  resource: {
    function: 'myFunction',
    devMode: true // 上线后移除
  }
};

额外验证步骤

  • 确认服务账号邮箱已添加到Apps Script项目的共享列表,权限至少为「查看者」(使用已部署版本)或「编辑者」(使用devMode)
  • 重新开关一次Google Cloud控制台中的Apps Script API,确保服务生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:30:08