Простые и устанавливаемые триггеры позволяют Google Apps Script автоматически запускать функцию при возникновении определенного события. Когда срабатывает триггер, Apps Script передает функции объект события в качестве аргумента, обычно e . Объект события содержит информацию о контексте, вызвавшем срабатывание триггера. Например, следующий пример кода демонстрирует простой триггер onEdit(e) для скрипта Google Sheets, который использует объект события для определения того, какая ячейка была отредактирована.
function onEdit(e){
// Set a comment on the edited cell to indicate when it was changed.
var range = e.range;
range.setNote('Last modified: ' + new Date());
}
На этой странице описаны поля объекта события для различных типов триггеров.
События, генерируемые устанавливаемыми триггерами, содержат triggerUid , идентифицирующий триггер, который сгенерировал событие. Это помогает скриптам, имеющим несколько устанавливаемых триггеров.
События в Google Таблицах
Различные триггеры, специфичные для Google Sheets, позволяют скриптам реагировать на действия пользователя в электронной таблице.
Открыть( Простой и легко устанавливаемый ) | |
|---|---|
authMode | Значение из перечисления LIMITED |
source | Объект Spreadsheet |
triggerUid | Идентификатор триггера, вызвавшего это событие (только для устанавливаемых триггеров). 4034124084959907503 |
user | Объект amin@example.com |
Изменять( устанавливаемый ) | |
|---|---|
authMode | Значение из перечисления FULL |
changeType | Тип изменения ( INSERT_ROW |
source | Объект Spreadsheet |
triggerUid | Идентификатор триггера, вызвавшего это событие. 4034124084959907503 |
user | Объект amin@example.com |
Редактировать( Простой и легко устанавливаемый ) | |
|---|---|
authMode | Значение из перечисления LIMITED |
oldValue | Значение ячейки до редактирования, если таковое имелось. Доступно только в том случае, если редактируемый диапазон состоит из одной ячейки. Не определено, если ячейка ранее не содержала содержимого. 1234 |
range | Объект Range |
source | Объект Spreadsheet |
triggerUid | Идентификатор триггера, вызвавшего это событие (только для устанавливаемых триггеров). 4034124084959907503 |
user | Объект amin@example.com |
value | Новое значение ячейки после редактирования. Доступно только в том случае, если редактируемый диапазон состоит из одной ячейки. 10 |
Отправить форму( устанавливаемый ) | |
|---|---|
authMode | Значение из перечисления FULL |
namedValues | Объект, содержащий названия вопросов и значения из отправленной формы. {
'First Name': ['Jane'],
'Timestamp': ['6/7/2015 20:54:13'],
'Last Name': ['Doe']
} |
range | Объект Range |
triggerUid | Идентификатор триггера, вызвавшего это событие. 4034124084959907503 |
values | Массив со значениями, расположенными в том же порядке, в котором они указаны в электронной таблице. ['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill', '28', 'Susan', '25'] |
События Google Docs
Триггеры позволяют Docs реагировать на открытие пользователем документа.
Открыть( Простой и легко устанавливаемый ) | |
|---|---|
authMode | Значение из перечисления LIMITED |
source | Объект Document |
triggerUid | Идентификатор триггера, вызвавшего это событие (только для устанавливаемых триггеров). 4034124084959907503 |
user | Объект amin@example.com |
Мероприятия в Google Slides
Триггеры позволяют Slides реагировать на открытие пользователем презентации.
Открыть( простой ) | |
|---|---|
authMode | Значение из перечисления LIMITED |
source | Объект Presentation |
user | Объект amin@example.com |
События Google Forms
Специальные триггеры для форм позволяют скриптам реагировать на редактирование формы пользователем или отправку ответа.
Открыть* ( простой и легко устанавливаемый ) | |
|---|---|
authMode | Значение из перечисления LIMITED |
source | Объект Form |
triggerUid | Идентификатор триггера, вызвавшего это событие (только для устанавливаемых триггеров). 4034124084959907503 |
user | Объект amin@example.com |
* Это событие происходит не тогда, когда пользователь открывает форму для ответа, а когда редактор открывает форму для ее изменения.
Отправить форму( устанавливаемый ) | |
|---|---|
authMode | Значение из перечисления FULL |
response | Объект FormResponse |
source | Объект Form |
triggerUid | Идентификатор триггера, вызвавшего это событие. 4034124084959907503 |
События в календаре Google
События в Google Календаре срабатывают при обновлении (создании, редактировании или удалении) событий в календаре пользователя.
Эти триггеры не указывают, какое именно событие изменилось и как именно. Вместо этого они сообщают, что вашему коду необходимо выполнить операцию инкрементальной синхронизации, чтобы учесть последние изменения в календаре. Полное описание этой процедуры см. в руководстве по синхронизации ресурсов для API календаря .
Для синхронизации с календарем в Apps Script выполните следующие действия:
- Включите расширенную службу «Календарь» для проекта скрипта. Встроенной службы «Календарь» недостаточно для данного рабочего процесса.
- Определите, какие календари необходимо синхронизировать. Для каждого календаря выполните начальную операцию синхронизации , используя метод Events.list() службы Calendar advanced.
- Первоначальная синхронизация возвращает объект
nextSyncTokenдля данного календаря. Сохраните этот токен для дальнейшего использования. - Когда срабатывает триггер Apps Script
EventUpdatedуказывающий на изменение события в календаре, выполните инкрементальную синхронизацию для затронутого календаря, используя сохраненныйnextSyncToken. По сути, это еще один запрос Events.list() , но предоставлениеnextSyncTokenограничивает ответ только теми событиями, которые изменились с момента последней синхронизации. - Проанализируйте ответ на синхронизацию, чтобы узнать, какие события были обновлены, и настройте свой код на соответствующую реакцию. Например, зарегистрируйте изменение, обновите электронную таблицу, отправьте уведомления по электронной почте или выполните другие действия.
- Обновите значение
nextSyncTokenсохраненное для этого календаря, на значение, возвращенное запросом на инкрементальную синхронизацию. Это заставит следующую операцию синхронизации возвращать только самые актуальные изменения.
Иногда сервер аннулирует токены синхронизации, что приводит к ошибке 410 В этом случае ваш код должен выполнить полную синхронизацию и заменить все сохраненные синхронизированные данные и токены для данного календаря.
СобытиеОбновлено( устанавливаемый ) | |
|---|---|
authMode | Значение из перечисления FULL |
calendarId | Идентификатор календаря, в котором произошло обновление события. susan@example.com |
triggerUid | Идентификатор триггера, вызвавшего это событие. 4034124084959907503 |
События дополнения Google Workspace
Триггер onInstall() срабатывает автоматически, когда пользователь устанавливает дополнение .
Установить( простой ) | |
|---|---|
authMode | Значение из перечисления FULL |
События приложения Google Chat
Чтобы узнать больше об объектах событий в Google Chat, см. раздел «Получение и обработка взаимодействий в приложении Google Chat» .
События, ограниченные временем
Триггеры, срабатывающие по времени (также называемые триггерами по таймеру), позволяют скриптам выполняться в определенное время или с заданным интервалом.
| Зависит от времени ( устанавливается по расписанию ) | |
|---|---|
authMode | Значение из перечисления FULL |
day-of-month | От Поскольку это имя свойства содержит дефисы, доступ к нему следует осуществлять с помощью 31 |
day-of-week | С Поскольку это имя свойства содержит дефисы, доступ к нему следует осуществлять через 7 |
hour | От 23 |
minute | От 59 |
month | От 12 |
second | От 59 |
timezone | Часовой пояс. UTC |
triggerUid | Идентификатор триггера, вызвавшего это событие. 4034124084959907503 |
week-of-year | От Поскольку в названии этого свойства присутствуют дефисы, доступ к нему следует осуществлять через 52 |
year | Год. 2015 |