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

UrlFetchApp.fetch提交Google Form空白响应问题排查

问题:Google Form批量提交仅生成空白响应,仅第一部分数据可提交

我需要将包含370名成员的表格数据批量提交到Google Form,以此为每人生成唯一的表单编辑URL。测试环境下该功能可正常实现,但目标表单存在异常:脚本能根据表格信息生成正确的预填URL,提交后却仅生成带时间戳的空白响应。

已完成以下排查:

  • 关闭「收集邮箱地址」选项后问题仍存在
  • 确认所有Entry ID正确(从预填URL提取,并通过浏览器开发者工具二次核对)
  • 将表单中所有问题设为可选
  • 未启用任何问题验证规则

搭建的测试环境中,测试代码可正常提交数据,但将目标表单代码调整为相同结构后,仍仅提交时间戳。后续测试发现,仅能提交Google Form第一部分的问题响应,怀疑后续部分数据被阻止填充,求解决方案。

目标表单代码

function submitFormWithFourteenVariables() {
  // 步骤1:打开Google表格并获取相关数据
  var spreadsheet = SpreadsheetApp.openById('1ap4e85u8Nog2utavbOnFcpkt5YjYMdVjtFkueSk8enc'); // 替换为你的表格ID
  var sheet = spreadsheet.getSheetByName('Sheet3'); // 替换为正确的工作表名称

  // 步骤2:获取A到N列的数据(14个变量)
  var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, 14); // 从第2行开始,A到N列
  var formEntries = dataRange.getValues(); // 以二维数组格式获取所有值

  // 步骤3:预填表单基础URL
  let baseUrl = "https://docs.google.com/forms/d/e/1FAIpQLSfOZeHtpAvX0QVFLCsHKMkOpTQso9uOCXZ8aE85ohlhM7wQIQ/formResponse";

  // 14个变量对应的Entry字段
  let entryField1 = 'entry.280771258';  // A列
  let entryField2 = 'entry.937303683';  // B列
  let entryField3 = 'entry.1749954787'; // C列
  let entryField4 = 'entry.1148000645'; // D列
  let entryField5 = 'entry.1018738857'; // E列
  let entryField6 = 'entry.864137965';  // F列
  let entryField7 = 'entry.285531524';  // G列
  let entryField8 = 'entry.803278540';  // H列
  let entryField9 = 'entry.824658702';  // I列
  let entryField10 = 'entry.903515294'; // J列
  let entryField11 = 'entry.1136164170'; // K列
  let entryField12 = 'entry.77414810';   // L列
  let entryField13 = 'entry.1972082954'; // M列
  let entryField14 = 'entry.342786861';  // N列

  // 步骤4:遍历formEntries中的每一行数据
  formEntries.forEach(function(entry) {
    // 构建该条数据的完整提交URL
    let submitUrl = `${baseUrl}?${entryField1}=${encodeURIComponent(entry[0])}&${entryField2}=${encodeURIComponent(entry[1])}&${entryField3}=${encodeURIComponent(entry[2])}&${entryField4}=${encodeURIComponent(entry[3])}&${entryField5}=${encodeURIComponent(entry[4])}&${entryField6}=${encodeURIComponent(entry[5])}&${entryField7}=${encodeURIComponent(entry[6])}&${entryField8}=${encodeURIComponent(entry[7])}&${entryField9}=${encodeURIComponent(entry[8])}&${entryField10}=${encodeURIComponent(entry[9])}&${entryField11}=${encodeURIComponent(entry[10])}&${entryField12}=${encodeURIComponent(entry[11])}&${entryField13}=${encodeURIComponent(entry[12])}&${entryField14}=${encodeURIComponent(entry[13])}`;

    Logger.log(`提交URL: ${submitUrl}`);

    try {
      let response = UrlFetchApp.fetch(submitUrl);
      Logger.log(`提交成功:${entry.join(', ')} - 响应码: ${response.getResponseCode()}`);
    } catch (error) {
      Logger.log(`提交失败:${entry.join(', ')} - ${error.message}`);
    }
  });
}

测试环境代码

function submitFormWithSixVariables() {
  // 步骤1:打开Google表格并获取相关数据
  var spreadsheet = SpreadsheetApp.openById('1eVwjsRRF43hlDvXQxiQtEGYdV87mlolFMnuATbPizL4'); // 替换为你的表格ID
  var sheet = spreadsheet.getSheetByName('ToBecomeGoogleFormSubmission'); // 替换为正确的工作表名称

  // 步骤2:获取A到F列的数据(6个变量)
  var dataRange = sheet.getRange(2, 1, sheet.getLastRow() - 1, 6); // 从第2行开始,A到F列
  var formEntries = dataRange.getValues(); // 以二维数组格式获取所有值

  // 步骤3:预填表单基础URL
  let baseUrl = "https://docs.google.com/forms/d/e/1FAIpQLSclC-9yLKeehZil5hxMxau-x_l4eey9yXI1Ir5KwyU1jND2Gg/formResponse";

  // 6个变量对应的Entry字段
  let entryField1 = 'entry.2014725632'; // A列
  let entryField2 = 'entry.624238492';  // B列
  let entryField3 = 'entry.1011223783'; // C列
  let entryField4 = 'entry.1953523146'; // D列
  let entryField5 = 'entry.53603353';   // E列
  let entryField6 = 'entry.1886927027'; // F列

  // 步骤4:遍历formEntries中的每一行数据
  formEntries.forEach(function(entry) {
    // 构建该条数据的完整提交URL
    let submitUrl = `${baseUrl}?${entryField1}=${encodeURIComponent(entry[0])}&${entryField2}=${encodeURIComponent(entry[1])}&${entryField3}=${encodeURIComponent(entry[2])}&${entryField4}=${encodeURIComponent(entry[3])}&${entryField5}=${encodeURIComponent(entry[4])}&${entryField6}=${encodeURIComponent(entry[5])}`;

    Logger.log(`提交URL: ${submitUrl}`);

    try {
      let response = UrlFetchApp.fetch(submitUrl);
      Logger.log(`提交成功:${entry[0]}, ${entry[1]}, ${entry[2]}, ${entry[3]}, ${entry[4]}, ${entry[5]} - 响应码: ${response.getResponseCode()}`);
    } catch (error) {
      Logger.log(`提交失败:${entry} - ${error.message}`);
    }
  });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:05:54