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

无法通过触发函数读取Google Form响应的问题求助

问题分析与解决:表单提交触发器事件对象不匹配

错误原因

你当前配置的触发器事件来源是「From spreadsheet」(电子表格端的表单提交触发),但代码是按照Google表单端的提交触发器的事件对象结构编写的,两者的事件参数e完全不同:

  • 表单端触发器的e包含response属性,可调用getItemResponses()获取响应详情;
  • 电子表格端触发器的e没有response属性,所以e.response为undefined,执行formResponse.getItemResponses()时就会抛出「Cannot read properties of undefined」错误。

两种解决办法

办法1:切换到表单端触发器(脚本绑定在Google Form上)

如果你的脚本是绑定在Google表单而非关联的电子表格上,修改触发器配置:

  • 事件来源选择「From form」
  • 事件类型选择「On form submit」
    此时原代码即可正常运行,因为e.response会正确返回表单响应对象。

办法2:适配电子表格端触发器的事件对象(脚本绑定在Google Sheet上)

如果脚本绑定在关联的电子表格上,直接使用电子表格提交事件的e.values数组获取响应数据:

function onFormSubmit(e) {
  // e.values是按表单字段顺序排列的数组,第一个元素是提交时间戳
  var submitTime = e.values[0];
  var FirstName = e.values[1]; // 对应表单第一个字段
  var LastName = e.values[2];  // 对应表单第二个字段
  // 后续业务逻辑...
}

注意:e.values的索引从0开始,索引0是系统自动记录的提交时间,表单的第一个字段对应索引1,以此类推。

验证说明

你之前通过注释报错行并设置固定值能正常运行,说明函数本身的执行逻辑没问题,核心问题就是事件对象的结构与代码预期不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:23:22