На этой странице описана структура объектов событий дополнений Google Workspace.
Объекты событий — это структуры JSON, которые автоматически создаются и передаются в качестве параметров функциям запуска или обратного вызова, когда пользователь взаимодействует с надстройкой. Объекты событий несут информацию на стороне клиента о хост-приложении и текущем контексте для функции обратного вызова надстройки на стороне сервера.
Надстройки Google Workspace используют объекты событий в следующих местах:
Триггеры главной страницы . Каждой определяемой вами функции
homepageTrigger
автоматически передается объект события при срабатывании функции триггера домашней страницы. Вы можете использовать этот объект в функции триггера вашей домашней страницы, чтобы идентифицировать активное хост-приложение, платформу клиента, языковой стандарт пользователя и другую информацию.Объекты событий, созданные при срабатывании триггеров домашней страницы, не содержат всех полей, включенных в два других случая; поля, относящиеся к виджетам и контекстной информации, опущены.
Контекстные триггеры . Каждое хост-приложение предоставляет свой набор контекстных триггеров, которые срабатывают, когда пользователь входит в определенный контекст. Например:
- Gmail предоставляет контекстный триггер, когда пользователь открывает сообщение, и другой, когда пользователь создает сообщение .
- Календарь Google предоставляет контекстный триггер, когда пользователь открывает мероприятие .
- Google Диск предоставляет контекстный триггер, когда пользователь выбирает файлы на Диске .
Когда срабатывает контекстный триггер, хост-приложение вызывает соответствующую
runFunction
указанную в манифесте надстройки, передавая ей объект события в качестве параметра. Объекты событий, созданные при срабатывании контекстных триггеров, содержат все поля, включенные в объекты триггерных событий домашней страницы, а также поля, содержащие контекстную информацию.Действия виджета . Объекты событий также используются для обеспечения интерактивности виджетов , используя ту же модель действий , что и надстройки Gmail. Надстройки Google Workspace используют все те же функции обработчика виджетов, объекты
Action
и ответы действий. Однако в надстройках Google Workspace объекты события действия содержат еще больше информации, на которую может воздействовать функция обратного вызова.Объекты событий, созданные в результате действий виджета, содержат все поля, включенные в объекты событий контекстного триггера, а также поля, содержащие информацию виджета.
Триггеры ссылок предварительного просмотра (Предварительный просмотр для разработчиков) . В Документах Google вы можете настроить предварительный просмотр ссылок для сторонних сервисов на основе определенных шаблонов URL. Когда пользователи взаимодействуют со ссылкой, соответствующей шаблону, срабатывает
previewLinkTrigger
, и объект события, содержащий ссылку, передается функции обратного вызова триггера. Ваша надстройка может использовать этот объект события для создания смарт-чипа и карты, которые отображают информацию о ссылке в хост-приложении. Вы также можете создавать действия виджета, чтобы пользователи могли взаимодействовать с карточкой предварительного просмотра и ее содержимым.
Структура объекта события
В следующей таблице описана структура верхнего уровня объектов событий дополнений Google Workspace. Структура объекта события включает поле верхнего уровня commonEventObject
для информации, не зависящей от хоста. Каждый объект события также может иметь одно из следующих полей верхнего уровня для конкретного хоста, определяемых активным хост-приложением: gmailEventObject
, calendarEventObject
или driveEventObject
.
В целях обратной совместимости объекты событий дополнений Google Workspace также включают все исходные поля, используемые в объектах событий действий надстроек Gmail . Эти поля перечислены в таблице ниже в разделе «Исходные поля дополнения Gmail»; информация в этих полях воспроизводится в новой структуре объекта.
Объект события | |
---|---|
eventObject.commonEventObject | Common fields object Объект, содержащий информацию, общую для всех объектов событий, независимо от ведущего приложения. |
eventObject.calendar | Calendar event object Присутствует только в том случае, если вызывающим хостом является Google Calendar . Объект, содержащий информацию о календаре и событиях. |
eventObject.drive | Drive event object Присутствует только в том случае, если вызывающим хостом является Google Диск . Объект, содержащий информацию о Диске. |
eventObject.gmail | Gmail event object Присутствует только в том случае, если вызывающим хостом является Gmail . Объект, содержащий информацию Gmail. |
eventObject.docs | Docs event object Присутствует только в том случае, если вызывающим хостом является Google Docs . Объект, содержащий информацию о Документах. |
eventObject.sheets | Sheets event object Присутствует только в том случае, если вызывающим хостом является Google Sheets . Объект, содержащий информацию о таблицах. |
eventObject.slides | Slides event object Присутствует только в том случае, если вызывающим хостом является Google Slides . Объект, содержащий информацию о слайдах. |
Оригинальные дополнительные поля Gmail | |
eventObject.messageMetadata.accessToken | string Устарело. Маркер доступа. Вы можете использовать это, чтобы включить доступ к пользовательским данным с помощью временных надстроек Gmail. Для надстроек Google Workspace эту информацию можно найти в поле |
eventObject.messageMetadata.messageId | string Устарело. Идентификатор сообщения цепочки, открытой в пользовательском интерфейсе Gmail. Для надстроек Google Workspace эту информацию можно найти в поле |
eventObject.clientPlatform | string Устарело. Указывает источник события (Интернет, iOS или Android). Для надстроек Google Workspace эту информацию можно найти в поле |
eventObject.formInput | object Устарело. Карта текущих значений всех виджетов формы на карточке, ограниченная одним значением для каждого виджета. Ключи — это идентификаторы строк, связанные с виджетами, а значения — строки. Объект события предоставляет formInput для удобства, когда вам нужно прочитать данные из нескольких виджетов с ожидаемыми сингулярными значениями, такими как ввод текста и переключатели. Для многозначных виджетов, таких как флажки, вместо этого вы можете прочитать каждое значение из formInputs . Для надстроек Google Workspace вместо этого найдите эту информацию в поле |
eventObject.formInputs | object Устарело. Карта текущих значений виджетов в карточке, представленная в виде списков строк. Ключи — это строковые идентификаторы, связанные с виджетом. Для однозначных виджетов значение представлено в массиве из одного элемента. Для многозначных виджетов, таких как группы флажков, все значения представлены в виде списка. Для надстроек Google Workspace эту информацию можно найти в поле |
eventObject.parameters | object Устарело. Карта любых дополнительных параметров, которые вы предоставляете Action с помощью Action.setParameters() . Ключи и значения карты представляют собой строки. Для надстроек Google Workspace эта информация находится в поле |
eventObject.userCountry | string Устарело и отключено по умолчанию . Двухбуквенный код, обозначающий страну или регион пользователя. Это также может быть числовой код страны UN M49 . Для надстроек Google Workspace эту информацию можно найти в поле |
eventObject.userLocale | string Устарело и отключено по умолчанию . Двухбуквенный код ISO 639 , указывающий язык пользователя. Дополнительные сведения см. в разделе Доступ к языковому стандарту и часовому поясу пользователя . Для надстроек Google Workspace эту информацию можно найти в поле |
eventObject.userTimezone.id | string Устарело и отключено по умолчанию . Идентификатор часового пояса часового пояса пользователя. Примеры: America/New_York , Europe/Vienna и Asia/Seoul . Дополнительные сведения см. в разделе Доступ к языковому стандарту и часовому поясу пользователя . Для надстроек Google Workspace эту информацию можно найти в поле |
eventObject.userTimezone.offset | string Устарело и отключено по умолчанию . Смещение времени от всемирного координированного времени (UTC) часового пояса пользователя, измеряемое в миллисекундах. Дополнительные сведения см. в разделе Доступ к языковому стандарту и часовому поясу пользователя . Для надстроек Google Workspace эту информацию можно найти в поле |
Общий объект события
Общий объект события — это часть общего объекта события, которая переносит общую, независимую от хоста информацию в надстройку от клиента пользователя. Эта информация включает такие сведения, как языковой стандарт пользователя, хост-приложение и платформа.
В дополнение к домашней странице и контекстным триггерам надстройки создают и передают объекты событий функциям обратного вызова действия , когда пользователь взаимодействует с виджетами. Функция обратного вызова вашей надстройки может запросить общий объект события, чтобы определить содержимое открытых виджетов в клиенте пользователя. Например, ваша надстройка может найти текст, введенный пользователем в виджет TextInput
в объекте eventObject.commentEventObject.formInputs
.
Общие поля объекта события | |
---|---|
commonEventObject.platform | string Указывает источник события («WEB», «IOS» или «ANDROID»). |
commonEventObject.formInputs | object Карта, содержащая текущие значения виджетов в отображаемой карточке. Ключи карты — это строковые идентификаторы, назначенные каждому виджету. Структура объекта значения карты зависит от типа виджета: Например, вместо Чтобы узнать больше о средах выполнения в Apps Script, см. Обзор среды выполнения V8 .
|
commonEventObject.hostApp | string Указывает ведущее приложение, в котором надстройка активна при создании объекта события. Возможные значения включают следующее:
|
commonEventObject.parameters | object Любые дополнительные параметры, которые вы предоставляете Action с помощью Action.setParameters() . |
commonEventObject.userLocale | string Отключено по умолчанию . Язык пользователя и идентификатор страны/региона в формате код языка ISO 639 — код страны/региона ISO 3166 . Например, en-US . Чтобы включить это поле, вы должны установить |
commonEventObject.timeZone | string Отключено по умолчанию . Идентификатор часового пояса и смещение. Чтобы включить это поле, вы должны установить addOns.common.useLocaleFromApp значение true в манифесте надстройки. Список областей действия вашей надстройки также должен включать https://www.googleapis.com/auth/script.locale . Дополнительные сведения см. в разделе Доступ к языковому стандарту и часовому поясу пользователя . |
commonEventObject.timeZone.id | string Идентификатор часового пояса часового пояса пользователя. Примеры: America/New_York , Europe/Vienna и Asia/Seoul . Чтобы включить это поле, вы должны установить addOns.common.useLocaleFromApp значение true в манифесте надстройки. Список областей действия вашей надстройки также должен включать https://www.googleapis.com/auth/script.locale . Дополнительные сведения см. в разделе Доступ к языковому стандарту и часовому поясу пользователя . |
commonEventObject.timeZone.offset | string Смещение времени от всемирного координированного времени (UTC) часового пояса пользователя, измеряемое в миллисекундах. Дополнительные сведения см. в разделе Доступ к языковому стандарту и часовому поясу пользователя . |
Входные данные формы выбора даты и времени
Функции обратного вызова действия могут получать текущие значения виджета в поле commonEventObject.formInputs
. Сюда входят выбранные пользователем значения даты или времени в виджетах выбора даты или времени. Однако структура информации различается в зависимости от того, был ли виджет настроен как средство выбора даты и времени, средство выбора только даты или средство выбора только времени. Структурные различия описаны в следующей таблице:
Объект события календаря
Объект события календаря — это часть общего объекта события, которая содержит информацию о календаре пользователя и событиях календаря. Он присутствует в объекте события только в том случае, если ведущим приложением является Календарь Google.
В следующей таблице перечислены поля, представленные в поле calendarEventObject
объекта события. Поля, помеченные как данные, созданные пользователем, присутствуют в объекте события тогда и только тогда, когда данные присутствуют в событии календаря, а надстройка устанавливает для своего поля манифеста addOns.calendar.currentEventAccess
значение READ
или READ_WRITE
.
Объект события календаря | |
---|---|
calendar.attendees[] | list of attendee objects Пользовательские данные. Список участников календарного события. |
calendar.calendarId | string Идентификатор календаря. |
calendar.capabilities | object Пользовательские данные. Объект, описывающий возможности надстройки для просмотра или обновления информации о событии. |
calendar.capabilities.canAddAttendees | boolean Пользовательские данные. true , если надстройка может добавлять новых участников в список участников мероприятия; false в противном случае. |
calendar.capabilities.canSeeAttendees | boolean Пользовательские данные. true , если надстройка может читать список участников мероприятия; false в противном случае. |
calendar.capabilities.canSeeConferenceData | boolean Пользовательские данные. true , если надстройка может считывать данные конференции по событию; false в противном случае. |
calendar.capabilities.canSetConferenceData | boolean Пользовательские данные. true , если надстройка может обновлять данные конференции по событию; false в противном случае. |
calendar.capabilities.canAddAttachments | boolean Пользовательские данные. true , если надстройка может добавлять к событию новые вложения; false в противном случае. |
calendar.conferenceData | Conference data object Пользовательские данные. Объект, представляющий любые данные конференции, связанные с этим событием, например сведения о конференции Google Meet. |
calendar.id | string Идентификатор события. |
calendar.organizer | object Объект, представляющий организатора события. |
calendar.organizer.email | string Адрес электронной почты организатора мероприятия. |
calendar.recurringEventId | string Идентификатор повторяющегося события. |
Участник
Объекты Attendee содержат информацию об отдельных посетителях событий Календаря Google. Эта информация присутствует в объекте события тогда и только тогда, когда данные присутствуют в событии календаря, и надстройка устанавливает для своего поля манифеста addOns.calendar.currentEventAccess
значение READ
или READ_WRITE
.
Объект посетителя | |
---|---|
attendee.additionalGuests | number Количество дополнительных гостей, которое участник указал, что они приводят. По умолчанию равен нулю. |
attendee.comment | string Ответный комментарий участника, если таковой имеется. |
attendee.displayName | string Отображаемое имя участника. |
attendee.email | string Адрес электронной почты участника. |
attendee.optional | boolean true , если присутствие для этого участника помечено как необязательное; false в противном случае. |
attendee.organizer | boolean true , если участник является организатором этого события. |
attendee.resource | boolean true , если участник представляет ресурс, например комнату или часть оборудования; false в противном случае. |
attendee.responseStatus | string Статус ответа участника. Возможные значения включают следующее:
|
attendee.self | boolean true , если этот участник представляет календарь, в котором отображается это событие; false в противном случае. |
Данные конференции
Объекты данных конференции содержат информацию о конференциях, привязанных к событиям Календаря Google. Это могут быть решения для конференций Google, такие как Google Meet, или сторонние конференции. Эта информация присутствует в объекте события тогда и только тогда, когда данные присутствуют в событии календаря, и надстройка устанавливает для своего поля манифеста addOns.calendar.currentEventAccess
значение READ
или READ_WRITE
.
Объект данных конференции | |
---|---|
conferenceData.conferenceId | string Идентификатор конференции. Этот идентификатор предназначен для того, чтобы приложения могли отслеживать конференции; вы не должны показывать этот идентификатор пользователям. |
conferenceData.conferenceSolution | object Объект, представляющий решение для конференций, например Hangouts или Google Meet. |
conferenceData.conferenceSolution.iconUri | string URI видимого пользователем значка, представляющего это решение для конференций. |
conferenceData.conferenceSolution.key | object Ключ, который однозначно идентифицирует решение конференции для этого события. |
conferenceData.conferenceSolution.key.type | string Тип решения конференции. Возможные значения включают следующее:
|
conferenceData.conferenceSolution.name | string Видимое для пользователя имя этого решения для конференций (не локализовано). |
conferenceData.entryPoints[] | list of entry point objects Список точек входа в конференцию, например URL-адреса или номера телефонов. |
conferenceData.notes | string Дополнительные примечания (например, инструкции от администратора домена или юридические уведомления) о конференции для отображения пользователю. Может содержать HTML. Максимальная длина 2048 символов. |
conferenceData.parameters | object Объект, содержащий карту определенных данных параметров для использования надстройкой. |
conferenceData.parameters.addOnParameters | object Карта ключей и значений строк параметров. Эти ключи и значения определяются разработчиком надстройки для прикрепления информации к конкретной конференции для использования надстройки. |
Входная точка
Объекты точки входа несут информацию об установленных средствах доступа к данной конференции, таких как телефон или видео. Эта информация присутствует в объекте события тогда и только тогда, когда данные присутствуют в событии календаря, и надстройка устанавливает для своего поля манифеста addOns.calendar.currentEventAccess
значение READ
или READ_WRITE
.
Объект точки входа | |
---|---|
entryPoint.accessCode | string Код доступа, используемый для доступа к конференции. Максимальная длина составляет 128 символов. Провайдеры конференций обычно используют только подмножество { accessCode , meetingCode , passcode , password , pin } для предоставления доступа к конференциям. Сопоставьте и всегда отображайте только те поля, которые использует провайдер конференции. |
entryPoint.entryPointFeatures | list Особенности точки входа. В настоящее время эти функции применимы только к phone точкам входа:
|
entryPoint.entryPointType | string Тип точки входа. Возможны следующие значения:
|
entryPoint.label | string Видимая пользователем метка для URI точки входа (не локализована). |
entryPoint.meetingCode | string Код встречи, используемый для доступа к конференции. Максимальная длина составляет 128 символов. Провайдеры конференций обычно используют только подмножество { accessCode , meetingCode , passcode , password , pin } для предоставления доступа к конференциям. Сопоставьте и всегда отображайте только те поля, которые использует провайдер конференции. |
entryPoint.passcode | string Пароль, используемый для доступа к конференции. Максимальная длина составляет 128 символов. Провайдеры конференций обычно используют только подмножество { accessCode , meetingCode , passcode , password , pin } для предоставления доступа к конференциям. Сопоставьте и всегда отображайте только те поля, которые использует провайдер конференции. |
entryPoint.password | string Пароль, используемый для доступа к конференции. Максимальная длина составляет 128 символов. Провайдеры конференций обычно используют только подмножество { accessCode , meetingCode , passcode , password , pin } для предоставления доступа к конференциям. Сопоставьте и всегда отображайте только те поля, которые использует провайдер конференции. |
entryPoint.pin | string PIN-код, используемый для доступа к конференции. Максимальная длина составляет 128 символов. Провайдеры конференций обычно используют только подмножество { accessCode , meetingCode , passcode , password , pin } для предоставления доступа к конференциям. Сопоставьте и всегда отображайте только те поля, которые использует провайдер конференции. |
entryPoint.regionCode | string Код региона номера телефона. Требуется пользователям, если URI не включает код страны. Значения основаны на общедоступном списке кодов регионов CLDR . |
entryPoint.uri | string URI точки входа. Максимальная длина 1300 символов. Форматирование зависит от типа точки входа:
|
Объект события привода
Объект события Диска — это часть общего объекта события, которая содержит информацию о пользовательском Диске Google и его содержимом. Он присутствует в объекте события только в том случае, если ведущим приложением является Google Диск.
Объект события привода | |
---|---|
drive.activeCursorItem | Drive item object Элемент диска в настоящее время активен. |
drive.selectedItems[] | list of Drive item objects Список элементов (файлов или папок), выбранных на Диске. |
Элемент диска
Объекты элементов Диска несут информацию об определенных элементах Диска, таких как файлы или папки.
Объект элемента привода | |
---|---|
item.addonHasFileScopePermission | boolean Если true , надстройка запросила и получила https://www.googleapis.com/auth/drive.file авторизацию области действия для этого элемента; в противном случае это поле false . |
item.id | string Идентификатор выбранного элемента. |
item.iconUrl | string URL-адрес значка, представляющего выбранный элемент. |
item.mimeType | string Тип MIME выбранного элемента. |
item.title | string Название выбранного элемента. |
Объект события Gmail
Объект события Gmail — это часть общего объекта события, содержащая информацию о сообщениях пользователя Gmail. Он присутствует в объекте события только в том случае, если ведущим приложением является Gmail.
Объект события Gmail | |
---|---|
gmail.accessToken | string Маркер доступа для Gmail. Вы можете использовать этот токен с методом GmailApp.setCurrentMessageAccessToken(accessToken) , чтобы предоставить надстройке временный доступ к открытому в данный момент сообщению Gmail пользователя или позволить вашей надстройке создавать новые черновики. |
gmail.bccRecipients[] | list of strings Отключено по умолчанию . Список адресов электронной почты получателей «BCC:», в настоящее время включенных в проект надстройки. Чтобы включить это поле, вы должны установить для поля addOns.gmail.composeTrigger.draftAccess в манифесте значение METADATA . |
gmail.ccRecipients[] | list of strings Отключено по умолчанию . Список адресов электронной почты получателей «CC:», в настоящее время включенных в черновик, который создает надстройка. Чтобы включить это поле, вы должны установить для поля addOns.gmail.composeTrigger.draftAccess в манифесте значение METADATA . |
gmail.messageId | string Идентификатор открытого в данный момент сообщения Gmail. |
gmail.threadId | string Текущий идентификатор открытой цепочки Gmail. |
gmail.toRecipients[] | list of strings Отключено по умолчанию . Список адресов электронной почты получателей «Кому:», в настоящее время включенный в черновик, который создает надстройка. Чтобы включить это поле, вы должны установить для поля addOns.gmail.composeTrigger.draftAccess в манифесте значение METADATA . |
Объект события Документов
Объект события Docs — это часть общего объекта события, которая содержит информацию о документе пользователя и его содержимом. Он присутствует в объекте события только в том случае, если ведущим приложением является Google Docs.
Объект события Документов | |
---|---|
docs.id | string Присутствует только в том случае, если область https://www.googleapis.com/auth/drive.file авторизована пользователем .Идентификатор документа, открытого в пользовательском интерфейсе Документов. |
docs.title | string Присутствует только в том случае, если область https://www.googleapis.com/auth/drive.file авторизована пользователем .Название документа, открытого в пользовательском интерфейсе Документов. |
docs.addonHasFileScopePermission | boolean Если задано значение true , надстройка запросила и получила https://www.googleapis.com/auth/drive.file авторизацию области действия для документа, открытого в пользовательском интерфейсе Документов; в противном случае это поле false . |
docs.matchedUrl.url | string Присутствует только при соблюдении следующих условий:
URL-адрес ссылки, которая создает предварительный просмотр в Документах Google. Чтобы использовать это поле, вы должны настроить LinkPreviewTriggers в манифесте надстройки. Дополнительные сведения см. в разделе Ссылки для предварительного просмотра в Документах Google . Пример полезной нагрузки, когда пользователь просматривает ссылку "docs" : { "matchedUrl" : { "url" : "https://www.example.com/12345" } } |
Объект события Sheets
Объект события Sheets — это часть общего объекта события, которая содержит информацию о документе пользователя и его содержимом. Он присутствует в объекте события только в том случае, если ведущим приложением является Google Таблицы.
Объект события Sheets | |
---|---|
sheets.id | string Присутствует только в том случае, если область https://www.googleapis.com/auth/drive.file авторизована пользователем . Идентификатор электронной таблицы, открытой в пользовательском интерфейсе Таблиц. |
sheets.title | string Присутствует только в том случае, если область https://www.googleapis.com/auth/drive.file авторизована пользователем . Название электронной таблицы, открытой в пользовательском интерфейсе Таблиц. |
sheets.addonHasFileScopePermission | boolean Если задано значение true , надстройка запросила и получила https://www.googleapis.com/auth/drive.file авторизацию области действия для электронной таблицы, открытой в пользовательском интерфейсе Таблиц; в противном случае это поле false . |
Объект события «Слайды»
Объект события Slides — это часть общего объекта события, которая содержит информацию о документе пользователя и его содержимом. Он присутствует в объекте события только в том случае, если ведущим приложением является Google Slides.
Объект события «Слайды» | |
---|---|
slides.id | string Присутствует только в том случае, если область https://www.googleapis.com/auth/drive.file авторизована пользователем . Идентификатор презентации, открытой в пользовательском интерфейсе слайдов. |
slides.title | string Присутствует только в том случае, если область https://www.googleapis.com/auth/drive.file авторизована пользователем . Название презентации открывается в пользовательском интерфейсе слайдов. |
slides.addonHasFileScopePermission | boolean Если true , надстройка запросила и получила https://www.googleapis.com/auth/drive.file авторизацию области действия для презентации, открытой в пользовательском интерфейсе Slides. в противном случае это поле false . |