【问题标题】:Google form script not working谷歌表单脚本不起作用
【发布时间】:2014-03-27 07:44:01
【问题描述】:

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

我有一个由 Google Sheet 表单触发的非常简单的脚本:

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

有什么帮助吗?

【问题讨论】:

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


    【解决方案1】:

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

    您应该使用 forResponse 类 documented here,您会看到方法完全不同,我不打算在此处复制文档,但例如时间戳使用 getTimestamp()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多