Google Apps Script中getRespondentEmail()报错但能正常返回邮箱的问题咨询
解决Google Apps Script中getRespondentEmail()的TypeError问题
我之前也碰到过一模一样的情况,别慌,这个问题不是平台故障,大概率是你手动测试onSubmit函数导致的。
问题根源
当你在脚本编辑器里直接点击运行按钮测试onSubmit函数时,Google Apps Script不会自动传入正确的e事件对象——这时候e.response不是真正的表单提交响应对象,自然没有getRespondentEmail()方法,所以会抛出TypeError。但当用户实际提交表单时,系统会传入完整的事件对象,这时候getRespondentEmail()就能正常工作,所以你能在日志里看到正确的邮箱地址。
解决办法
- 停止手动运行测试:只通过实际提交表单来验证函数逻辑,不要在脚本编辑器里直接点运行。
- 添加容错判断:如果需要偶尔手动测试,可以在代码里增加参数检查,避免错误触发:
function onSubmit(e) { // 先判断是否有合法的响应对象 if (!e || !e.response) { Logger.log("请通过表单提交触发该函数,不要手动运行"); return; } var responder = e.response.getRespondentEmail(); Logger.log(responder); var formResponse = e.response.getItemResponses(); }
这样既不会影响正常的表单提交逻辑,也能避免手动测试时触发错误邮件。
内容的提问来源于stack exchange,提问作者Gavin Parkes
相关产品推荐
相关产品推荐

