Кто звонит при вызове устанавливаемого триггера Form Submit?

Недавно я опубликовал надстройку Google Forms, которая обеспечивает доступ к списку классных курсов сразу после отправки формы.

Я вручную установил триггер onSubmit в свой скрипт, и он работал нормально. Я скопировал код в другую форму и тоже работал с учетными записями GSuite и не-GSuite.

Проблема в том, что теперь, когда дополнение было опубликовано, я протестировал его, и оно не работает. При поиске в GCP в средстве просмотра журналов я обнаружил ошибку «У вызывающего абонента нет разрешения на onSubmit (код: 40)» от API при вызове метода класса.

Итак, триггер работает, но разрешения почему-то не работают. Я проверил области, и они правильно запрашивают соответствующие разрешения для метода класса, вызываемого функцией onSubmit. Мне интересно, не в том ли проблема, что я вручную установил триггер и должен программно установить его в скрипте.

Мысли?


person Nacho Santa-María Megía    schedule 13.01.2020    source источник
comment
Надстройка обязательно должна программно создавать триггер On Form Submit. Я не знаю, проблема ли в этом, но я предполагаю, что это могло быть. Я заметил, что триггеры, установленные программно из надстройки, не имеют имени функции триггера, отображаемого на панели управления. Я не знаю, почему это так, но существует какое-то различие между триггерами, созданными пользователем, и триггерами, созданными надстройками.   -  person Alan Wells    schedule 13.01.2020
comment
Спасибо @AlanWells, я считаю, что установленный вручную триггер работает, потому что ошибка возникает из-за вызова функции, которая регистрирует триггер. Мне интересно, если вызывающий - это я, потому что я вручную установил триггер, и если бы он был иначе создан надстройкой, то вызывающим будет пользователь, который устанавливает надстройку. Это основано на том, что устанавливаемые триггеры всегда запускаются под учетной записью человека, который их создал. из ссылки   -  person Nacho Santa-María Megía    schedule 13.01.2020
comment
Цитата из документации: Installable triggers always run under the account of the person who created them Итак, если вы хотите, чтобы код надстройки запускался из учетной записи, которая установила надстройку, то триггер необходимо установить с кодом из надстройки. Но я не уверен, чего вы в конечном итоге пытаетесь достичь, и почему вы не добавили код в свою надстройку для установки триггера On Form Submit? Вы хотите, чтобы пользователь надстройки вручную установил триггер, запускающий код надстройки? Вы пытаетесь получить надстройку для запуска кода из своей учетной записи?   -  person Alan Wells    schedule 13.01.2020
comment
Я так и подумал, еще раз спасибо @AlanWells. Я не установил триггер программно, потому что я новичок и не знал, что мне следует так делать. Теперь знаю и исправлю свое дополнение.   -  person Nacho Santa-María Megía    schedule 13.01.2020
comment
Когда ты только учишься, легко сделать простую ошибку.   -  person Alan Wells    schedule 13.01.2020


Ответы (1)


Оказывается, ответ зависит от того, был ли триггер установлен вручную или программно. Если это первое, то «вызывающий» - это тот, кто установил триггер (обычно разработчик), а если это последний, то «вызывающий» - это пользователь, который устанавливает надстройку (что было моим намерением).

Спасибо, Алан!

person Nacho Santa-María Megía    schedule 13.01.2020