Як діяти на нерви Google Apps

Автоматизация Google предусматривает возможность обработки событий.
Простые триггеры срабатывают по

В качестве аргумента функции получают Объект события //developers.google.com/apps-script/guides/triggers/events

Прості тригери

//developers.google.com/apps-script/guides/triggers
Функции триггеров вызываются при наступлении заданных событий в документе.
Поскольку простые триггеры срабатывают автоматически, без запроса авторизации пользователя, на них распространяются несколько ограничений:

onOpen(e)

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

onInstall(e)

запускается, когда пользователь устанавливает надстройку редактора из Google Docs, Sheets, Slides или Forms.

onEdit(e)

Функция onEdit() вызывается при любом интерактивном изменении в документе. В качестве аргумента функция получает объект Event Object со свойствами:

  • .authMode Значение из перечисления ScriptApp.AuthMode
  • .range: Range диапазон ячеек, который был изменен
  • .source: Spreadsheet объект, который представляет таблицу Google, которая была изменена
  • .value новое значение ячейки
  • .oldValue старое значение ячейки
  • .user: User объект представления пользователя, который вносит изменения
onSelectionChange(e)

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

doGet(e)

запускается, когда пользователь посещает веб-приложение или программа отправляет HTTP-запрос GET в веб-приложение.

doPost(e)

запускается, когда программа отправляет HTTP-запрос POST в веб-приложение.

Объект события

!!! Структура содержания объекта события зависит от события. Объект может содержать:

  • .authMode Значение из перечисления ScriptApp.AuthMode
    • NONE Режим, запрещающий доступ к каким-либо сервисам, требующим авторизации. Этот режим возникает, когда надстройка выполняет простой триггер onOpen(e) , а пользователь установил надстройку в другом документе, но надстройка не использовалась в текущем документе
    • CUSTOM_FUNCTION Режим, который позволяет получить доступ к ограниченному подмножеству сервисов для использования в пользовательских функциях электронных таблиц. Некоторые из этих служб, включая доступ только для чтения к службе электронных таблиц, обычно требуют авторизации, но разрешены без авторизации при использовании в пользовательской функции. Поскольку пользовательские функции не включают параметр события, это значение никогда не возвращается; это задокументировано только для демонстрации того, что пользовательские функции работают в своем собственном режиме авторизации
    • LIMITED Режим, позволяющий получить доступ к ограниченному набору услуг. Этот режим возникает, когда надстройка или скрипт , привязанный к документу, выполняет простой триггер onOpen(e) или onEdit(e) , за исключением случая, описанного для NONE
    • FULL Режим, открывающий доступ ко всем сервисам, требующим авторизации. Этот режим возникает, когда надстройка или сценарий выполняются в результате любого триггера, кроме случаев, описанных для LIMITED или NONE .
  • .range: Range диапазон ячеек, который был изменен, в котором, кроме стандартных документированных методов, доступны свойства:
    • rowStart начальная строка диапазона
    • rowEnd конечная строка диапазона
    • columnStart начальная колонка диапазона
    • columnEnd конечная колонка диапазона
  • .source: Spreadsheet объект, который представляет таблицу Google, которая была изменена
  • .value новое значение ячейки (только при непосредственном редактировании)
  • .oldValue старое значение ячейки (только при непосредственном редактировании)
  • .user: User объект, который представляет пользователя, который внес изменения в таблицу, в котором доступны свойства:
    • email /
    • nickname /
Отладка событий

Отладка событий в реальном времени не предусмотрена, но отладить обработчик можно путем симуляции вызова обработчика. Например:

+  Triggers in Google Sheets //spreadsheet.dev/triggers-in-google-sheets

Leave a Reply