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

绑定Google Sheet的App Script表单提交触发器关闭后失效求助

问题:Google Sheet绑定的App Script表单提交触发器仅在Sheet打开时生效

我有一个绑定到关联Google表单的Google Sheet的App Script,通过on form submit触发器执行,功能包括更新Sheet数据、调用API、获取图片嵌入邮件并发送给表单提交者。当Sheet在浏览器中打开时,所有功能正常运行;但关闭Sheet后,提交表单时触发器完全不执行,执行记录中也没有任何痕迹。

功能目标

  • 用户提交表单时生成UID并添加至Sheet
  • 通过API将UID嵌入二维码并上传至Google Drive
  • 脚本从Drive获取PNG格式二维码,嵌入邮件发送给用户

代码实现

var ID_LENGTH = 20;

// 生成随机UID
function generateUID () {
  var ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  var rtn = '';
  for (var i = 0; i < ID_LENGTH; i++) {
    rtn += ALPHABET.charAt(Math.floor(Math.random() * ALPHABET.length));
  }
  return rtn;
}

function autoResponder(e) {
  console.log("Trigger begin");

  // 获取指定Sheet
  const sheetID = 'spreadsheetID';
  
  var ss = SpreadsheetApp.openById(sheetID).getSheetByName('sheetName');

  var sheetname = ss.getName();
  
  // 生成UID
  var responseId = generateUID() 

  // 为当前表单提交行添加UID和状态
  var formrow = e.range.rowStart
  ss.getRange(formrow, 25).setValue(responseId);
  ss.getRange(formrow, 26).setValue("FALSE");

  // 调用API
  const api_url = `https://myapi.com/test`  
  var api_response = UrlFetchApp.fetch(api_url);
  console.log(api_response.getContentText());

  // 从Drive获取二维码图片
  var file = DriveApp.getFolderById('folder-id').getFilesByName(`${responseId}.png`).next().getBlob()

  var name = e.namedValues.Name
  var email = e.namedValues['Email address'][0]
  console.log(e.namedValues['Email address'][0])
  var adminEmail = "abc@xyz.com"

  // 发送内嵌图片的邮件
  MailApp.sendEmail({
    to: email,
    subject: "email subject",
    htmlBody: '<html>Some html code</html>',
    inlineImages:
      {
        image: file
      }
  });
  
}

已尝试的解决方法

  • 将e.source.getActiveSheet()替换为硬编码的Sheet ID和名称
  • 删除并重新创建onFormSubmit触发器
  • 通过代码方式创建触发器

复现步骤

  1. 创建Google表单并关联到Google Sheet
  2. 在绑定Sheet的App Script中编写邮件发送函数
  3. 添加Sheet的onFormSubmit触发器
  4. 关闭Sheet的浏览器实例后提交表单,触发器不执行

排查与状态更新

  • 排查后确认代码无问题,更换账号测试结果一致,疑似Google平台Bug,存在历史相关Bug记录
  • 更新:功能突然恢复正常,推测Google已修复该问题,已提交Issue,若再次失效会更新状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:35:02