Google表单脚本无效

时间:2014-03-27 07:44:02

标签: forms google-apps-script google-sheets google-docs

我似乎无法让表单触发的脚本正常运行。确切地说,它运行,我可以做一些事情,但我无法访问应该发送到事件处理函数的表单数据。

我有一个由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()没有被传递参数,我认为它应该被传递。但我看到的所有例子都是这样的。

有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

您似乎在表单中使用脚本(从对象e中的值可以看出),而不是在电子表格中使用。

你应该使用forResponse类documented here,你会发现方法完全不同,我不会在这里重现文档但是例如时间戳来自{{ 3}}