Как заставить триггеры Google App script запускаться при выполнении скрипта или запросов API?

#google-apps-script #google-sheets #google-sheets-api

#google-apps-script #google-sheets #google-sheets-api

Вопрос:

Я знаю, что устанавливаемые триггеры не выполняются / не запускаются при выполнении сценариев или обновлениях через запросы API. Для запуска триггеров изменение или редактирование должно выполняться «вручную». Есть ли какой-либо обходной путь или решение для этого?

Вот мой пример использования:

  • Я разработал HTML-интерфейс, который принимает некоторые данные и сохраняет их в определенной электронной таблице
  • Поскольку я не хотел, чтобы какие-либо пользователи имели доступ к внутренней электронной таблице (чтобы ограничить просмотр отправкой других), я создал службу REST с помощью TIBCO Cloud Integration> Google connector, которая записывает данные в электронную таблицу Google
  • Когда пользователь отправляет ответ, пользовательский интерфейс внутренне вызывает вышеупомянутый API TIBCO, который, в свою очередь, обновляет электронную таблицу (используя мои учетные данные Google) с помощью ответа, отправленного пользователем

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

До этого момента все работало нормально, но в рамках некоторых дополнительных функций я хочу, чтобы некоторые функции (написанные в скрипте серверной электронной таблицы) запускались при «onEdit», когда мой вызов API записывается в электронную таблицу, и именно здесь я застрял. До сих пор я пробовал:

  • Предоставление Google Script в качестве REST API
  • Предоставление Google Script в качестве библиотечной функции

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

Комментарии:

1. Это невозможно сделать.

2. К сожалению, я не могу понять вашу цель из I want some functions (written in the script of backend spreadsheet) to trigger on 'onEdit' when my API call write to the spreadsheet . Я приношу свои извинения за это. Могу я спросить вас о деталях вашей цели? Например, когда my API вы вводите значение с помощью Sheets API, полезен ли триггер onChange для вашей ситуации?

3. @Tanaike — Вызов API write не очень гибкий, все, что я могу сделать, это вывести некоторые значения в электронную таблицу. Итак, мой план состоит в том, чтобы установить триггер на ‘onEdit (e)’ и получить диапазон, только что обновленный на ‘e’, внести некоторые изменения в отправку, например, изменить статус сброшенных значений с «в ожидании» на «выполняется», отправить электронное письмо получателю и т.д. Надеюсь, это поможет.

4. Так что же мешает вам делать эти onEdit обновления при вызове API? Т.е. код скрипта вашего приложения вызывает API, получает ответ и обновляет электронную таблицу, почему бы вам в той же функции после обновления этих диапазонов не запустить то, что вам нужно для запуска с помощью onEdit? Теоретически вы уже должны были бы знать, какие диапазоны были изменены в этой функции, поскольку вы только что настроили ее.

5. Можете ли вы предоставить более подробную информацию о том, что onEdit происходит? Пожалуйста, предоставьте код, связанный с пользовательским интерфейсом, службой REST и onEdit действиями.