我似乎无法让表单触发的脚本正常运行。确切地说,它运行,我可以做一些事情,但我无法访问应该发送到事件处理函数的表单数据。
我有一个由Google表单触发的非常简单的脚本:
function OnFormSubmit(e)
{
try {
var timeStamp = e.namedValues["Timestamp"][0];
MailApp.sendEmail(emailAddress, "SCRIPT ENTRY", timeStamp);
} catch (x) {
var message = x.toString() + "\n[" + Utilities.jsonStringify(e) + "]\n"
MailApp.sendEmail(emailAddress, "SCRIPT ERROR", message);
}
}
我还有一个只有一个项目的非常简单的表格。我已经设置了触发器。表单运行并在电子表格中添加一行。我收到电子邮件,因此脚本正在触发。但是我收到了SCRIPT ERROR电子邮件。消息是:
TypeError: Cannot read property "Timestamp" from undefined.
[{"response":"FormResponse","authMode":"FULL"}]
"时间戳"确实存在于表格响应表中(因为我相信它总是会;时间戳是一个自动输入)。
似乎OnFormSubmit()没有被传递参数,我认为它应该被传递。但我看到的所有例子都是这样的。
有任何帮助吗?
答案 0 :(得分:0)
您似乎在表单中使用脚本(从对象e中的值可以看出),而不是在电子表格中使用。
你应该使用forResponse类documented here,你会发现方法完全不同,我不会在这里重现文档但是例如时间戳来自{{ 3}}