«Независимое» выполнение приложения на скопированных файлах - PullRequest
0 голосов
/ 24 апреля 2020

Я пользователь G-Suite. У меня есть комбо из документов Google, состоящих из формы с прикрепленным листом и ограниченным AppScript. На основе форм ответов, сохраненных на листе, скрипт подключается к слайдам, модифицирует их, извлекает результат в формате PDF и отправляет его через MailApp. Давайте назовем это «Комбо». Я использую комбо для каждого нового события, однако это требует очистки прошлых данных, а старые данные теряются. Вот почему мне нужно изменить его определенным образом.

Reuired process

Для каждого нового события я хотел бы создать следующий процесс:
обратите внимание, я не спрашивать совета о том, как выполнить шаги 1-3 - это довольно просто
1. Администратор открывает электронную таблицу «Master», в которой создан дополнительный пункт меню (например, «создать новое событие») - появляется всплывающее окно
2. Во всплывающем окне Администратор вводит сведения о событии, нажимает ОК.
3. Скрипт в электронной таблице создает копию комбинированной папки, отправляя ссылку на форму заранее определенным пользователям по электронной почте.
4. После получения ответа в скопированном комбо-форме предположим, что активирован , чтобы выполнить то, что нужно (как описано выше).

Как вы видите, должно быть никакое вмешательство человека, кроме запуска создания скопированной комбинации администратором и внешними пользователями, заполняющими общую форму, которая запускает процесс, описанный выше. Пользователи формы являются анонимными, а не пользователями Gsuite / Google.

Проблемы

Большинство триггеров на скопированных файлах не будут активированы, даже если они назначены через GAS из-за OAuth или других внутренних ограничений. Я считаю, что единственный способ сделать это - создать надстройку для всего домена (возможно, для Sheets), но, похоже, для доступа к файлам / данным скопированная комбинация все равно потребует авторизации.
Как видите, проблема заключается не в создании файлов и папок, а в АКТИВИРОВАНИИ процесса после копирования файлов. Похоже, что может сделать задание настройка триггера onFormSubmit() для скопированной формы, которая также автоматически разрешит Form App, DriveApp, SpreadsheetApp, SlidesApp, MailApp областей, что не произойдет, если не получено разрешение, как я не знаю.
Может ли кто-нибудь просветить меня об этом топи c пожалуйста

Большое спасибо

Рафал

1 Ответ

0 голосов
/ 24 апреля 2020

Соображения

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

Если вы создаете копии файлов, пользователь без учетной записи g-suite / gmail никогда не сможет установить триггеры, которые вы хотите использовать. Учтите, что триггеры на формах запускаются только в редакторе.

Подход

Идея состоит в том, чтобы создать еще один шаг администратора, скажем, 3a:

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

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

Ссылки:

Устанавливаемые триггеры

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...