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

Простые и устанавливаемые триггеры позволяют 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

Значение из перечисления ScriptApp.AuthMode .

LIMITED
source

Объект Spreadsheet , представляющий файл Google Таблиц, к которому привязан скрипт.

Spreadsheet
triggerUid

Идентификатор триггера, вызвавшего это событие (только устанавливаемые триггеры).

4034124084959907503
user

Объект User , представляющий активного пользователя, если он доступен ( в зависимости от сложного набора ограничений безопасности ).

amin@example.com

Изменять

( устанавливаемый )
authMode

Значение из перечисления ScriptApp.AuthMode .

FULL
changeType

Тип изменения ( EDIT , INSERT_ROW , INSERT_COLUMN , REMOVE_ROW , REMOVE_COLUMN , INSERT_GRID , REMOVE_GRID , FORMAT или OTHER ).

INSERT_ROW
source

Объект Spreadsheet , представляющий файл Google Таблиц, к которому привязан скрипт.

Spreadsheet
triggerUid

Идентификатор триггера, вызвавшего это событие.

4034124084959907503
user

Объект User , представляющий активного пользователя, если он доступен ( в зависимости от сложного набора ограничений безопасности ).

amin@example.com

Редактировать

( простой и устанавливаемый )
authMode

Значение из перечисления ScriptApp.AuthMode .

LIMITED
oldValue

Значение ячейки до редактирования, если таковое имеется. Доступно только если редактируемый диапазон представляет собой одну ячейку. Будет неопределено, если ячейка ранее не имела содержимого.

1234
range

Объект Range , представляющий ячейку или диапазон ячеек, которые были отредактированы.

Range
source

Объект Spreadsheet , представляющий файл Google Таблиц, к которому привязан скрипт.

Spreadsheet
triggerUid

Идентификатор триггера, вызвавшего это событие (только устанавливаемые триггеры).

4034124084959907503
user

Объект User , представляющий активного пользователя, если он доступен ( в зависимости от сложного набора ограничений безопасности ).

amin@example.com
value

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

10

Форма отправлена

( устанавливаемый )
authMode

Значение из перечисления ScriptApp.AuthMode .

FULL
namedValues

Объект, содержащий названия вопросов и значения из отправленной формы.

{
  'First Name': ['Jane'],
  'Timestamp': ['6/7/2015 20:54:13'],
  'Last Name': ['Doe']
}
range

Объект Range , представляющий ячейку или диапазон ячеек, которые были отредактированы.

Range
triggerUid

Идентификатор триггера, вызвавшего это событие.

4034124084959907503
values

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

['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill',
'28', 'Susan', '25']

События Google Docs

Триггеры позволяют Google Docs реагировать, когда пользователь открывает документ.

Открыть

( простой и устанавливаемый )
authMode

Значение из перечисления ScriptApp.AuthMode .

LIMITED
source

Объект Document , представляющий файл Google Docs, к которому привязан скрипт.

Document
triggerUid

Идентификатор триггера, вызвавшего это событие (только устанавливаемые триггеры).

4034124084959907503
user

Объект User , представляющий активного пользователя, если он доступен ( в зависимости от сложного набора ограничений безопасности ).

amin@example.com

Мероприятия Google Slides

Триггеры позволяют Google Slides реагировать, когда пользователь открывает презентацию.

Открыть

( простой )
authMode

Значение из перечисления ScriptApp.AuthMode .

LIMITED
source

Объект Presentation , представляющий файл Google Slides, к которому привязан скрипт.

Presentation
user

Объект User , представляющий активного пользователя, если он доступен ( в зависимости от сложного набора ограничений безопасности ).

amin@example.com

События Google Форм

Триггеры, специфичные для Google Forms, позволяют скриптам реагировать, когда пользователь редактирует форму или отправляет ответ.

Открыть

* ( простой и устанавливаемый )
authMode

Значение из перечисления ScriptApp.AuthMode .

LIMITED
source

Объект Form , представляющий файл Google Forms, к которому привязан скрипт.

Form
triggerUid

Идентификатор триггера, вызвавшего это событие (только устанавливаемые триггеры).

4034124084959907503
user

Объект User , представляющий активного пользователя, если он доступен ( в зависимости от сложного набора ограничений безопасности ).

amin@example.com

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

Форма отправлена

( устанавливаемый )
authMode

Значение из перечисления ScriptApp.AuthMode .

FULL
response

Объект FormResponse , представляющий ответ пользователя на форму в целом.

FormResponse
source

Объект Form , представляющий файл Google Forms, к которому привязан скрипт.

Form
triggerUid

Идентификатор триггера, вызвавшего это событие.

4034124084959907503

События Google Календаря

Триггеры календаря срабатывают при обновлении (создании, редактировании или удалении) событий календаря пользователя.

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

Для синхронизации с Календарем в Apps Script выполните следующие действия:

  1. Включите расширенную службу «Календарь» для проекта скрипта. Встроенной службы «Календарь» недостаточно для этого рабочего процесса.
  2. Определите, какие календари следует синхронизировать. Для каждого такого календаря выполните начальную операцию синхронизации , используя метод Events.list() расширенной службы Calendar.
  3. Результатом первой синхронизации является токен nextSyncToken для этого календаря. Сохраните этот токен для дальнейшего использования.
  4. При срабатывании триггера Apps Script EventUpdated , указывающего на изменение события в календаре, выполняется инкрементальная синхронизация для затронутого календаря с использованием сохранённого nextSyncToken . По сути, это ещё один запрос Events.list() , но предоставление nextSyncToken ограничивает ответ только событиями, изменившимися с момента последней синхронизации.
  5. Изучите ответ синхронизации, чтобы узнать, какие события были обновлены, и настроить свой код на соответствующую реакцию. Например, вы можете зарегистрировать изменение, обновить электронную таблицу, отправить уведомления по электронной почте или выполнить другие действия.
  6. Обновите сохранённый вами nextSyncToken для этого календаря, используя токен, возвращаемый запросом на инкрементную синхронизацию. Это заставит следующую операцию синхронизации вернуть только самые последние изменения.

СобытиеОбновлено

( устанавливаемый )
authMode

Значение из перечисления ScriptApp.AuthMode .

FULL
calendarId

Строковый идентификатор календаря, в котором произошло обновление события.

susan@example.com
triggerUid

Идентификатор триггера, вызвавшего это событие.

4034124084959907503

События надстройки Google Workspace

Триггер onInstall() запускается автоматически, когда пользователь устанавливает дополнение .

Установить

( простой )
authMode

Значение из перечисления ScriptApp.AuthMode .

FULL

События приложения Google Chat

Дополнительную информацию об объектах событий в Google Chat см. в статье Получение и ответ на взаимодействия с приложением Google Chat .

События, управляемые временем

Триггеры, управляемые по времени (также называемые тактовыми триггерами), позволяют скриптам выполняться в определенное время или с повторяющимся интервалом.

Управляемый по времени ( устанавливаемый )
authMode

Значение из перечисления ScriptApp.AuthMode .

FULL
day-of-month

От 1 до 31 .

Поскольку имя этого свойства содержит дефисы, доступ к нему следует осуществлять через e['day-of-month'] а не через точку.

31
day-of-week

С 1 (понедельник) по 7 (воскресенье).

Поскольку имя этого свойства содержит дефисы, доступ к нему следует осуществлять через e['day-of-week'] а не через точку.

7
hour

От 0 до 23 .

23
minute

От 0 до 59 .

59
month

От 1 до 12 .

12
second

От 0 до 59 .

59
timezone

Часовой пояс.

UTC
triggerUid

Идентификатор триггера, вызвавшего это событие.

4034124084959907503
week-of-year

От 1 до 52 .

Поскольку имя этого свойства содержит дефисы, доступ к нему следует осуществлять через e['week-of-year'] а не через точку.

52
year

Год.

2015