Почему Google Forms не возвращает ответ пользователя на formSubmit? - PullRequest
0 голосов
/ 05 декабря 2018

Я создал образец формы 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" из неопределенного.atSubmit (код: 7)

Почему это так?Как мне захватить поля формы?Что-то не так с моим кодом или какими-то разрешениями?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Похоже, что в Google Forms была ошибка, возникающая только во вновь созданных формах:

Предлагается 2 обходных пути:

1) Включите вызов FormApp где-нибудь в коде, даже в комментарии.Например:

// FormApp.getActiveForm ();

2) Добавьте область в файл манифеста скрипта приложения в соответствии с этими инструкциями:

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

Область, которую нужно добавить: "https://www.googleapis.com/auth/forms"

После того, как вы выполнили любую из этих двух опций, повторно авторизуйте ваш скрипт. Вы можете сделать это, запустив любую функцию в редакторе скриптов.

0 голосов
/ 05 декабря 2018

Вам необходимо вызвать метод getItemResponses () для свойства response объекта e, а не непосредственно для объекта e.

Заменить:

  var itemResponses = e.getItemResponses();

С:

  var itemResponses = e.response.getItemResponses();
...