Простые триггеры и устанавливаемые триггеры позволяют Apps Script автоматически запускать функцию при возникновении определенного события. Когда срабатывает триггер, Apps Script передает функции объект события в качестве аргумента, обычно называемый e
. Объект события содержит информацию о контексте, вызвавшем срабатывание триггера. Например, в приведенном ниже примере кода показан простой триггер onEdit(e)
для сценария Google Таблиц, который использует объект события, чтобы определить, какая ячейка была отредактирована.
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());
}
На этой странице подробно описаны поля в объекте события для различных типов триггеров.
События Google Таблиц
Различные триггеры, специфичные для Google Таблиц, позволяют сценариям реагировать на действия пользователя в электронной таблице.
Открыть( простой и устанавливаемый ) | |
---|---|
authMode | Значение из перечисления LIMITED |
source | Объект Spreadsheet |
triggerUid | Идентификатор триггера, вызвавшего это событие (только устанавливаемые триггеры). 4034124084959907503 |
user | Объект amin@example.com |
Изменять( устанавливаемый ) | |
---|---|
authMode | Значение из перечисления FULL |
changeType | Тип изменения ( INSERT_ROW |
source | Объект Spreadsheet |
triggerUid | ID триггера, вызвавшего это событие. 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 | ID триггера, вызвавшего это событие. 4034124084959907503 |
values | Массив со значениями в том же порядке, в котором они появляются в электронной таблице. ['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill', '28', 'Susan', '25'] |
События Google Документов
Триггеры позволяют Google Docs реагировать, когда пользователь открывает документ.
Открыть( простой и устанавливаемый ) | |
---|---|
authMode | Значение из перечисления LIMITED |
source | Объект Document |
triggerUid | Идентификатор триггера, вызвавшего это событие (только устанавливаемые триггеры). 4034124084959907503 |
user | Объект amin@example.com |
События Google Презентации
Триггеры позволяют Google Slides реагировать, когда пользователь открывает презентацию.
Открыть( простой ) | |
---|---|
authMode | Значение из перечисления LIMITED |
source | Объект Presentation |
user | Объект amin@example.com |
События Google Форм
Специальные триггеры Google Forms позволяют сценариям реагировать, когда пользователь редактирует форму или отправляет ответ.
Открыть* ( простой и устанавливаемый ) | |
---|---|
authMode | Значение из перечисления LIMITED |
source | Объект Form |
triggerUid | Идентификатор триггера, вызвавшего это событие (только устанавливаемые триггеры). 4034124084959907503 |
user | Объект amin@example.com |
* Это событие происходит не тогда, когда пользователь открывает форму для ответа, а когда редактор открывает форму, чтобы изменить ее.
Отправить форму( устанавливаемый ) | |
---|---|
authMode | Значение из перечисления FULL |
response | Объект FormResponse |
source | Объект Form |
triggerUid | ID триггера, вызвавшего это событие. 4034124084959907503 |
События Google Календаря
Триггеры календаря срабатывают, когда события календаря пользователя обновляются (создаются, редактируются или удаляются).
Эти триггеры не сообщают вам, какое событие изменилось или как оно изменилось. Вместо этого они указывают, что ваш код должен выполнить добавочную операцию синхронизации, чтобы получить последние изменения в календаре. Полное описание этой процедуры см. в руководстве по синхронизации ресурсов для API календаря .
Для синхронизации с Календарем в Apps Script выполните следующие действия:
- Включите расширенную службу календаря для проекта скрипта. Встроенной службы календаря недостаточно для этого рабочего процесса.
- Определите, какие календари следует синхронизировать. Для каждого такого календаря выполните первоначальную операцию синхронизации с помощью метода Events.list() расширенной службы календаря.
- Результат начальной синхронизации возвращает
nextSyncToken
для этого календаря. Сохраните этот токен для последующего использования. - Когда срабатывает триггер Apps Script
EventUpdated
указывающий на изменение события календаря, выполните добавочную синхронизацию для затронутого календаря, используя сохраненныйnextSyncToken
. По сути, это другой запрос Events.list() , но предоставлениеnextSyncToken
ограничивает ответ только теми событиями, которые изменились с момента последней синхронизации. - Изучите ответ синхронизации, чтобы узнать, какие события были обновлены, и проверьте, правильно ли реагирует ваш код. Например, вы можете зарегистрировать изменение, обновить электронную таблицу, отправить уведомление по электронной почте или выполнить другие действия.
- Обновите
nextSyncToken
, который вы сохранили для этого календаря, на тот, который был возвращен запросом на добавочную синхронизацию. Это заставляет следующую операцию синхронизации возвращать только самые последние изменения.
СобытиеОбновлено( устанавливаемый ) | |
---|---|
authMode | Значение из перечисления FULL |
calendarId | Идентификатор строки календаря, в котором произошло обновление события. susan@example.com |
triggerUid | ID триггера, вызвавшего это событие. 4034124084959907503 |
Дополнительные события
Триггер onInstall()
запускается автоматически, когда пользователь устанавливает надстройку .
Установить( простой ) | |
---|---|
authMode | Значение из перечисления FULL |
События, управляемые временем
Триггеры, управляемые временем (также называемые триггерами часов), позволяют сценариям выполняться в определенное время или с повторяющимся интервалом.
Управляемый временем ( устанавливаемый ) | |
---|---|
authMode | Значение из перечисления FULL |
day-of-month | Между Поскольку это имя свойства содержит дефисы, к нему нужно обращаться через 31 |
day-of-week | С Поскольку это имя свойства содержит тире, к нему нужно обращаться через 7 |
hour | От 23 |
minute | Между 59 |
month | Между 12 |
second | Между 59 |
timezone | Часовой пояс. UTC |
triggerUid | ID триггера, вызвавшего это событие. 4034124084959907503 |
week-of-year | Между Поскольку это имя свойства содержит дефисы, к нему нужно обращаться через 52 |
year | Год. 2015 |