google-apps-script - 问题从显示错误“”TypeError:无法从未定义读取属性“值”的谷歌表单做出响应。(第 2 行,文件“代码”)“”
问题描述
在 Google 表单中,我正在尝试创建一个电子邮件响应,其中包含在表单响应(标题代码列)中生成的案例编号,但不幸的是,我遇到了错误:
typeError:无法从未定义中读取属性“值”。(第 2 行,文件“代码”)
我对此完全是新手,但我已经设置了触发功能,并在回复中发送的电子邮件中收到了此错误。
在下面找到响应文档的副本:
https://docs.google.com/spreadsheets/d/1w8cUkErljf6JzQm9q5aFwa-m9jX4o5qrAg5K7ib9Keg/edit?usp=sharing
这是我正在使用的代码:
function myFunction(e){
var userName = e.namedValues.Name;
var userEmail = e.namedValues.Tag;
var date = e.namedValues.Timestamp;
var subject = e.namedValues.Code;
var message = "Thanks, " + userName + " for submiting your data remember to take note of your Case number "+ subject + "You'll need this to for you or the customer to find the case again" +date;
MailApp.sendEmail (userEmail, subject, message);}
我希望它生成一封电子邮件,将代码用作主题并将其包含在正文中。
解决方案
不同的 Google 应用程序可以具有名称相同但事件对象不同的触发器。
要访问最新的表单响应,您需要触发器onFormsubmit()
,它可以是 Google 表格和 Google 表单触发器。
e.namedValues
是 Google SheetsonFormsubmit()
事件对象,而 Google FormonFormsubmit()
事件对象是e.response
。
你有两个选择:
- 将您的 Apps 脚本绑定到保存表单响应的电子表格,
e.namedValues
并按预期访问响应 - 将您的 Apps 脚本绑定到表单本身并访问响应,
e.response
如下所示:
var userName = e.response.getItemResponses()[0].getResponse();
var userEmail= e.response.getItemResponses()[1].getResponse();
...
请记住,这onFormsubmit()
是一个可安装的触发器。
推荐阅读
- https - 浏览器未响应对受限制资源的书签 ssl(https url)的 www-authenticate 质询
- c# - UWP Webview 只为最后一个请求触发 NavigationCompleted 事件
- excel - Excel加权完成任务
- python - 挖掘数据到 csv 文件,现在我想处理我希望保留的数据
- kubernetes - 如何在 Kubernetes 负载均衡器中响应 503 错误代码
- jquery - jQuery在之后插入文本
- python - 在python中读取文本文件
- python - 使用 python 3.4 烧瓶应用程序的天蓝色部署错误
- vba - 在 VBScript 文件中集成 VBA
- java - Listview自定义适配器上的SetBackgroundResource出现错误