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

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

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
triggerUid

ID триггера, вызвавшего это событие.

4034124084959907503
user

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

amin@example.com

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

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

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

LIMITED
oldValue

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

1234
range

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

Range
source

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

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

ID триггера, вызвавшего это событие.

4034124084959907503
values

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

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

События Google Документов

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

Открытым

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

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

LIMITED
source

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

Document
triggerUid

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

4034124084959907503
user

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

amin@example.com

События Google Презентации

Триггеры позволяют 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

ID триггера, вызвавшего это событие.

4034124084959907503

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

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

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

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

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

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

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

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

FULL
calendarId

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

susan@example.com
triggerUid

ID триггера, вызвавшего это событие.

4034124084959907503

Дополнительные события

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

Установить

( простой )
authMode

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

FULL

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

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

Управляемый временем ( устанавливаемый )
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

ID триггера, вызвавшего это событие.

4034124084959907503
week-of-year

Между 1 и 52 .

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

52
year

Год.

2015