Простые и устанавливаемые триггеры позволяют 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 | Идентификатор триггера, вызвавшего это событие. 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
Триггеры позволяют Google Docs реагировать, когда пользователь открывает документ.
Открыть( простой и устанавливаемый ) | |
---|---|
authMode | Значение из перечисления LIMITED |
source | Объект Document |
triggerUid | Идентификатор триггера, вызвавшего это событие (только устанавливаемые триггеры). 4034124084959907503 |
user | Объект amin@example.com |
Мероприятия Google Slides
Триггеры позволяют 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 | Идентификатор триггера, вызвавшего это событие. 4034124084959907503 |
События Google Календаря
Триггеры календаря срабатывают при обновлении (создании, редактировании или удалении) событий календаря пользователя.
Эти триггеры не сообщают, какое событие изменилось или как именно. Вместо этого они указывают, что вашему коду необходимо выполнить инкрементальную синхронизацию для получения последних изменений в календаре. Полное описание этой процедуры см. в руководстве по синхронизации ресурсов для API календаря .
Для синхронизации с Календарем в Apps Script выполните следующие действия:
- Включите расширенную службу «Календарь» для проекта скрипта. Встроенной службы «Календарь» недостаточно для этого рабочего процесса.
- Определите, какие календари следует синхронизировать. Для каждого такого календаря выполните начальную операцию синхронизации , используя метод Events.list() расширенной службы Calendar.
- Результатом первой синхронизации является токен
nextSyncToken
для этого календаря. Сохраните этот токен для дальнейшего использования. - При срабатывании триггера Apps Script
EventUpdated
, указывающего на изменение события в календаре, выполняется инкрементальная синхронизация для затронутого календаря с использованием сохранённогоnextSyncToken
. По сути, это ещё один запрос Events.list() , но предоставлениеnextSyncToken
ограничивает ответ только событиями, изменившимися с момента последней синхронизации. - Изучите ответ синхронизации, чтобы узнать, какие события были обновлены, и настроить свой код на соответствующую реакцию. Например, вы можете зарегистрировать изменение, обновить электронную таблицу, отправить уведомления по электронной почте или выполнить другие действия.
- Обновите сохранённый вами
nextSyncToken
для этого календаря, используя токен, возвращаемый запросом на инкрементную синхронизацию. Это заставит следующую операцию синхронизации вернуть только самые последние изменения.
СобытиеОбновлено( устанавливаемый ) | |
---|---|
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 |