Javascript 表单提交时收到的Google表单事件没有响应

Javascript 表单提交时收到的Google表单事件没有响应,javascript,google-apps-script,google-apps,google-forms,Javascript,Google Apps Script,Google Apps,Google Forms,我正在尝试使用绑定到表单的脚本(使用onFormSubmit()触发器)从google表单收集响应详细信息 大多数情况下,收到的详细信息都没有错误,但偶尔我会收到一个错误。已接收触发器,但未向脚本传递任何数据。google表单控制台接收到响应,但未转发到脚本 接收数据的代码: function onFormSubmit(e) { Logger.log("A response has been received!"); Logger.log(e); var resp = e.resp

我正在尝试使用绑定到表单的脚本(使用onFormSubmit()触发器)从google表单收集响应详细信息

大多数情况下,收到的详细信息都没有错误,但偶尔我会收到一个错误。已接收触发器,但未向脚本传递任何数据。google表单控制台接收到响应,但未转发到脚本

接收数据的代码:

function onFormSubmit(e)
{

  Logger.log("A response has been received!");
  Logger.log(e);
  var resp = e.response.getItemResponses(); //capturing trigger event output
  var form = e.source;
......
错误情况下的执行记录:

[16-09-27 07:29:15:073 PDT] Starting execution
[16-09-27 07:29:15:096 PDT] Logger.log([A response has been received!, []]) [0 seconds]
[16-09-27 07:29:15:097 PDT] Logger.log([{authMode=FULL, triggerUid=xxxxxxx41}, []]) [0 seconds]
[16-09-27 07:29:15:099 PDT] Execution failed: TypeError: Cannot call method "getItemResponses" of undefined. (line 18, file "Code") [0.002 seconds total runtime]
到目前为止,我已经通过复制表单和重新设置所有权限来纠正它。但我想要一个解决方案,不再让我这样做。在我的第10份副本上:(


当我成功接收响应时,
e
也有一个响应键。

这是一个可以防止脚本中断的解决方法:

function onFormSubmit(e)
{
  Logger.log("A response has been received!");
  // Check if e is defined
  if (e) {
    // Any code that use e should be inside this block
    Logger.log(e);
    var resp = e.response.getItemResponses(); //capturing trigger event output
    var form = e.source;
  } else {
    // Log if e is undefined
    Logger.log('e is undefined!');
  }
......

我同意鲁宾的观点,即您应该联系谷歌支持部门调查这个问题,尤其是您可以在控制台中看到响应。

您可能必须返回到活动触发器,删除触发器,重新添加触发器,它将提示您输入新的访问信息。

您验证了用户提供的响应吗?是的。响应为logge在Google forms仪表板中为相应的表单显示d。您能给我们看一下您的代码吗?您是否尝试过将代码移动到接收表单数据的电子表格中并在那里运行触发器?我在那里没有遇到触发器问题。在移动到新的表单和工作表后,我没有听说有人在获取表单时遇到问题。@Fralec s对不起,我不能显示其余的代码,但它涉及到使用许多其他谷歌应用程序-驱动器,工作表,日历,联系人和一些先进的谷歌服务-日历API,管理员等为我修复!谢谢!