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

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

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

LIMITED
source

Объект Spreadsheet , представляющий файл 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
source

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

Spreadsheet
triggerUid

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

4034124084959907503
user

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

amin@example.com

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

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

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

LIMITED
oldValue

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

1234
range

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

Range
source

Объект Spreadsheet , представляющий файл 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

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

4034124084959907503
values

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

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

События Google Docs

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

Открыть

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

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

LIMITED
source

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

Document
triggerUid

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

4034124084959907503
user

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

amin@example.com

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

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

Открыть

( простой )
authMode

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

LIMITED
source

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

Presentation
user

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

amin@example.com

События Google Forms

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

Открыть

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

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

LIMITED
source

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

Form
triggerUid

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

4034124084959907503
user

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

amin@example.com

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

Отправить форму

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

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

FULL
response

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

FormResponse
source

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

Form
triggerUid

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

4034124084959907503

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

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

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

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

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

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

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

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