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

如何通过Apps Script提交预填充Google表单?求助排障

如何通过Apps Script提交预填充的Google表单?

我尝试用Apps Script提交从预填充链接生成的Google表单,已经按照教程把预填充链接里的viewform替换成了formResponse,但试了两种方案都没效果,表单完全没响应。

我试过的两种方案:

方案一:

function send() {
  var config = {
      muteHttpExceptions: true,
      method: "get"
    };
  var url = "https://docs.google.com/forms/d/e/<form_id>/formResponse?usp=pp_url&entry.231322462=ANO&entry.133135319=1&entry.1743053173=2023-01-15";
  var response = UrlFetchApp.fetch(url, config);
  //Logger.log(response)
}

方案二:

function send() {
  var url = "https://docs.google.com/forms/d/e/<form_id>/formResponse?usp=pp_url&entry.231322462=ANO&entry.133135319=1&entry.1743053173=2023-01-15";
  var response = UrlFetchApp.fetch(url);
  //Logger.log(response)
}

排查和解决方法:

  • 确认entry ID准确性:预填充链接里的entry ID偶尔会有偏差,直接打开表单的网页源码(按F12),搜索entry.,找到对应输入框的真实entry ID,替换代码里的编号。
  • 检查表单权限:确保表单设置为「任何人都可以提交」(不管是否登录Google账号),如果限制了提交人群,UrlFetchApp的请求会被拦截。
  • 查看响应日志:把代码里的//Logger.log(response)注释去掉,运行后查看日志面板,重点看HTTP状态码和响应内容:
    • 403:权限问题,检查表单访问设置;
    • 404:链接里的<form_id>写错了,核对表单ID;
    • 200但没提交成功:可能是字段参数不对,比如日期格式不符合表单要求。
  • 改用POST方法提交:Google Form更推荐POST方式提交,稳定性更高,试试下面的代码:
function sendForm() {
  var formUrl = "https://docs.google.com/forms/d/e/<form_id>/formResponse";
  var payload = {
    "entry.231322462": "ANO",
    "entry.133135319": "1",
    "entry.1743053173": "2023-01-15",
    "submit": "提交" // 若表单是英文界面,改成"Submit"
  };
  
  var options = {
    method: "post",
    payload: payload,
    muteHttpExceptions: true
  };
  
  var response = UrlFetchApp.fetch(formUrl, options);
  Logger.log("状态码: " + response.getResponseCode());
  Logger.log("响应内容: " + response.getContentText());
}

运行后如果日志显示状态码200,且响应内容里没有错误提示,说明提交成功了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:05:15