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

如何在Google Chat机器人通知中获取表单提交者的Email ID?

解决Google表单提交时获取提交者邮箱并发送Chat通知的问题

前提条件

确保你的Google表单已开启收集电子邮件地址功能:

  • 打开表单,点击右上角「设置」图标
  • 在「常规」标签下勾选「收集电子邮件地址」选项,保存设置

修改后的完整代码

function onFormSubmit(e){
  var formResponse = e.response;
  // 获取提交者邮箱(仅当表单开启收集邮箱时有效)
  var respondentEmail = formResponse.getRespondentEmail() || "未获取到邮箱";
  
  var itemResponses = formResponse.getItemResponses();
 
  var rname="",ecr="",rgld="",red="";
  var responsearray=[],questionarray=[
    "Requestor Name",
    "Category of Change Request:",
    "Requested Go Live Date",
    "Requested End Date (Max 7 days from today)",
    "Submitter Email ID" // 添加邮箱对应的问题标题
  ];
  
  for (var i=0; i<itemResponses.length; i++) {
    switch (itemResponses[i].getItem().getTitle()) {
      case "Requestor Name":
        rname = itemResponses[i].getResponse();
        break;
      case "Category of Change Request:":
        ecr = itemResponses[i].getResponse();
        break;
      case "Requested Go Live Date":
        rgld = itemResponses[i].getResponse();
        break;
      case "Requested End Date (Max 7 days from today)":
        red = itemResponses[i].getResponse();
        break;
    }
  }
  
  // 将邮箱加入响应数组
  responsearray.push(rname);
  responsearray.push(ecr);
  responsearray.push(rgld);
  responsearray.push(red);
  responsearray.push(respondentEmail);

  var message = "A new request has been raised by " ,questionanswer=""; 
  responsearray.forEach((response,index)=>{
    if(response!=""){
      if(questionanswer==""){
        questionanswer = questionarray[index]+"-"+response;
      } else {
        questionanswer = questionanswer +"\n"+ questionarray[index]+"-"+response;
      }
    }
  })

  if(questionanswer!="" && ecr=="Emergency Change Request (DO NOT USE - UNDER CONSTRUCTION)"){
    message = message +" "+ questionanswer;
    webhook(message);
  }
}

function webhook(message) {
  const url = "https://chat.googleapis.com/v1/spaces/AAAACZKTqrc/messages?key=AIzaSyDdI0hCZtE6vySjMm-WEfRq3CPzqKqqsHI&token=Zcf9bZSpsrrxX5JxpHaV57fDn18Iq8tJhtmy14uxVtc%3D"; // 替换为你的Webhook地址
  const options = {
    "method": "post",
    "headers": {
      "Content-Type": "application/json; charset=UTF-8"
    },
    "payload": JSON.stringify({
      "text": message
    })
  };
  const response = UrlFetchApp.fetch(url, options);
  // Logger.log(response);
}

关键修改说明

  1. 获取提交者邮箱:使用formResponse.getRespondentEmail()方法获取邮箱,同时用|| "未获取到邮箱"处理未获取到的情况(比如表单未开启收集邮箱时)。
  2. 修正语法错误:修复了原代码中var rname="",ecr="",rgld="",red="""的多余引号问题,改为正确的var rname="",ecr="",rgld="",red="";。
  3. 添加邮箱到通知内容:
    • 在questionarray中新增了"Submitter Email ID"作为邮箱对应的标题
    • 将获取到的respondentEmail加入responsearray,让它和其他字段一起被处理到通知文本中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:24:58