首页 > 解决方案 > 为什么 Google 表单不会在 formSubmit 上返回用户响应?

问题描述

我创建了一个示例 google 表单,并定义了如下函数:

function onFormSubmit(e) {
  Logger.log('Inside function');
  Logger.log('Emailing data row ->');

  var itemResponses = e.getItemResponses();
  var email = itemResponses[0].getResponse();
  Logger.log(itemResponses);
}

Edit-> Current project's triggers我添加了要在表单提交时调用的函数:

My Executions部分中,我看到以下错误:

TypeError:无法调用未定义的方法“getItemResponses”。在 onSubmit(代码:7)

为什么会这样?我应该如何捕获表单字段?我的代码或某些权限有问题吗?

标签: javascriptgoogle-apps-scripttriggersgoogle-forms

解决方案


似乎有一个错误Google Forms只发生在新创建的表单上:

建议2个解决方法:

1) 在代码中的某处包含对 FormApp 的调用,即使在注释中也是如此。例如:

// FormApp.getActiveForm();

2) 按照以下说明将范围添加到您的 Apps 脚本清单文件中:

https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes

添加的范围是“ https://www.googleapis.com/auth/forms

完成这两个选项中的任何一个后,重新授权您的脚本。您可以在脚本编辑器中运行任何函数来执行此操作。


推荐阅读