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

访问Google Apps Script Web App返回404 NOT_FOUND错误如何解决

核心问题说明

doGet/doPost是Web App专属的请求入口函数,不能通过Apps Script API的scripts.run方法调用,该方法仅支持调用普通自定义全局函数(如你代码里的makeQuestionsForm)。

404错误全量排查项
  • 确认SCRIPT_ID取值正确:只能使用Apps Script项目的脚本ID,不能填Google Cloud项目ID。获取路径:打开Apps Script编辑器 -> 左侧菜单栏「项目设置」 -> 复制页面内的「ID」字段值。
  • 确认Apps Script项目已开启执行API权限:
    1. 在Apps Script项目设置页勾选「在编辑器中显示appsscript.json清单文件」
    2. 回到编辑器打开appsscript.json,确认添加了执行API访问配置:
    "executionApi": {
      "access": "ANYONE"
    }
    
    1. 绑定的Google Cloud项目必须启用Apps Script API,未启用会直接返回404。
  • 确认devMode参数配置正确:devMode设为True时,调用凭证对应的用户必须是Apps Script项目的编辑者,仅为测试用户时会触发404。测试用户调用请先部署一个固定版本,devMode设为False。
  • 确认调用的函数为全局暴露的函数,无拼写错误,没有嵌套在其他函数内部。
调用逻辑修正方案

方案1:使用Apps Script API调用(推荐)

直接调用makeQuestionsForm函数即可,无需走Web App入口,注意parameters要按函数定义的参数顺序传数组,不能传字典:

service = build('script', 'v1', credentials=self.creds)
# 参数顺序和makeQuestionsForm(mywork, formName, subject)完全对应
api_request = {
            "function": "makeQuestionsForm",
            "parameters": [self.sheet_body, title, request.session['subject']], 
            "devMode": False
}
response = service.scripts().run(body=api_request,
                scriptId=SCRIPT_ID).execute()

方案2:直接调用Web App接口

如果要使用doGet/doPost能力,直接请求Web App部署URL即可,之前的未授权错误排查和代码修正:

  1. 确认Web App部署配置:「执行为」选择自己的账号,「有权访问的人」选择指定的测试用户或对应范围。
  2. 调用请求头的Authorization字段格式为Bearer <你的access_token>,token需包含Web App要求的对应作用域。
  3. 修正doPost的参数解析逻辑,原有逻辑无法直接解析POST的JSON参数:
function doPost(e){
  Logger.log('doPost is called');
  const requestBody = JSON.parse(e.postData.contents);
  const mywork = requestBody.mywork;
  const formName = requestBody.formName;
  const subject = requestBody.subject;
  const result = makeQuestionsForm(mywork, formName, subject);
  return ContentService.createTextOutput(JSON.stringify(result))
    .setMimeType(ContentService.MimeType.JSON);
}
  1. 调用时直接向Web App部署URL发POST请求,请求体为JSON格式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 06:45:01