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

为何GAS API正式部署正常但测试部署(含/dev)报401/403错误?

GAS测试部署(/dev)出现401/403错误的原因及解决办法

针对你遇到的正式部署正常、测试部署报错的情况,结合你的appscript.json配置,可能的原因及对应解决方法如下:

可能原因

  • 测试部署权限未同步:每次创建或更新测试部署时,都需要手动选择访问权限和执行身份,不会自动继承正式部署的设置。哪怕代码和配置文件一致,测试部署的权限可能被设为“仅限我自己”或“组织内用户”,而非ANYONE_ANONYMOUS。
  • 测试部署未完成授权流程:测试部署的授权上下文独立于正式部署,首次使用时需要部署者用自己的Google账号访问测试URL,完成权限授权(比如允许脚本访问电子表格)。未完成授权会导致调用时权限不足。
  • 测试部署的固有访问限制:Google Apps Script的测试部署(/dev结尾)属于内部测试用途,即使配置了ANYONE_ANONYMOUS,也可能强制要求部署者身份验证,不支持匿名访问。
  • 配置未同步至测试部署:修改appscript.json后,若未重新部署测试版本,测试部署仍在使用旧的权限配置。

解决步骤

  • 重新部署测试版:在脚本编辑器中进入「部署」->「管理部署」,选择测试部署点击「编辑」,确认访问权限设为「任何人,甚至匿名」,执行身份设为「部署此应用的用户」,保存后重新获取测试URL。
  • 手动完成测试部署授权:用部署者的Google账号打开测试URL,按照页面提示完成权限授权流程,授权完成后再调用API。
  • 验证测试部署权限:在「管理部署」中查看测试部署的权限详情,确保和appscript.json中的配置一致。
  • 清除缓存测试:使用浏览器无痕模式或清除缓存后调用测试URL,避免旧的授权缓存干扰。

你的当前appscript.json配置:

{
  "timeZone": "Europe/Brussels",
  "dependencies": {},
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "webapp": {
    "executeAs": "USER_DEPLOYING",
    "access": "ANYONE_ANONYMOUS"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 15:59:59