Триггеры электронных таблиц не запускаются из надстройки формы - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть частная надстройка редактора для форм Google, аналогичная существующей надстройке «Одобрения форм» на торговой площадке. Надстройка привязана к документу формы и во время регистрации (вызывается из меню onOpen при первом запуске) я устанавливаю три триггера; (1) отправка формы для текущей формы, (2) отправка формы для электронной таблицы, в которой сохраняются ответы формы, и (3) onEdit для той же электронной таблицы.

Когда я запускаю скрипт в разработке (а не как надстройку из магазина), все работает нормально. Когда я запускаю сценарий как надстройку (частную для моей организации, установленную на торговой площадке), триггер для формы запускается без проблем, но не запускается ни один из двух триггеров электронной таблицы. Это ограничение или проблема?

Фрагмент кода из моей встроенной функции (вызывается только при первом открытии дополнения):

  createResponseSpreadsheet(); /* assures that a response spreadsheet exists */
  var form = FormApp.getActiveForm();
  var spreadsheet = SpreadsheetApp.openById(form.getDestinationId()); /* is not null */
  ScriptApp.newTrigger('spreadsheetOnFormSubmit').forSpreadsheet(spreadsheet).onFormSubmit().create();
  ScriptApp.newTrigger('spreadsheetOnEdit').forSpreadsheet(spreadsheet).onEdit().create();
  ScriptApp.newTrigger('formOnFormSubmit').forForm(form).onFormSubmit().create();

И функции триггера:

function spreadsheetOnEdit(e) {
  /* ... */
}

function spreadsheetOnFormSubmit(e) {
  /* ... */
}

function formOnFormSubmit(e) {
  /* ... */
}

Области OAuth для проекта:

  "oauthScopes": [
    "https://www.googleapis.com/auth/spreadsheets", 
    "https://www.googleapis.com/auth/forms", 
    "https://www.googleapis.com/auth/script.container.ui",
    "https://mail.google.com/"
  ],

Некоторая дополнительная информация:

  • Таблица гарантированно существует к моменту установки триггеров.
  • I можете посмотреть на триггеры в проекте скрипта приложения - они существуют, указывают на правильный документ и правильную функцию.
  • Триггерная функция для формы выполняется. Триггерная функция для электронной таблицы никогда не выполняется.

Я пытался:

  • Удаление триггеров и их повторная установка (программно)
  • Удаление триггеры, создающие новую версию для надстройки, а затем переустанавливающие их (программно)

У кого-нибудь есть понимание? Спасибо!

...