Event

Событие взаимодействия с приложением Google Chat, которое представляет и содержит данные о взаимодействии пользователя с приложением Chat. Чтобы настроить приложение Chat для получения событий взаимодействия, ознакомьтесь со статьей Получение и реагирование на взаимодействия с пользователем.

Помимо событий, связанных с действиями пользователей, приложения Chat могут получать события об изменениях в чат-группах, например о добавлении нового участника. Подробнее о работе с событиями из Google Chat…

Предупреждение. Этот объект события используется только для приложений Chat, которые не являются дополнениями. Если ваше приложение Chat создано как дополнение Google Workspace, ознакомьтесь с разделом Объекты событий дополнений в документации по дополнениям. Чтобы узнать, какой тип события получает ваше приложение, ознакомьтесь с разделом Определение типа события.

JSON-представление
{
  "type": enum (EventType),
  "eventTime": string,
  "token": string,
  "threadKey": string,
  "message": {
    object (Message)
  },
  "user": {
    object (User)
  },
  "thread": {
    object (Thread)
  },
  "space": {
    object (Space)
  },
  "action": {
    object (FormAction)
  },
  "configCompleteRedirectUrl": string,
  "isDialogEvent": boolean,
  "dialogEventType": enum (DialogEventType),
  "common": {
    object (CommonEventObject)
  },
  "appCommandMetadata": {
    object (AppCommandMetadata)
  }
}
Поля
type

enum (EventType)

Тип взаимодействия пользователя с приложением Chat, например MESSAGE или ADDED_TO_SPACE.

eventTime

string (Timestamp format)

Временная метка, указывающая, когда произошло событие взаимодействия.

token

string

Секретное значение, которое устаревшие приложения Chat могут использовать для проверки того, что запрос поступил от Google. Google генерирует токен случайным образом, и его значение остается статическим. Получить, отозвать или повторно сгенерировать токен можно на странице конфигурации Chat API в консоли Google Cloud.

Современные приложения Chat не используют это поле. Он отсутствует в ответах API и на странице конфигурации Chat API.

threadKey

string

Заданный приложением Chat ключ для цепочки, связанной с событием взаимодействия. Подробнее: spaces.messages.thread.threadKey.

message

object (Message)

Для событий взаимодействия ADDED_TO_SPACE, CARD_CLICKED и MESSAGE – сообщение, которое активировало событие взаимодействия (если применимо).

user

object (User)

Пользователь, который взаимодействовал с приложением Chat.

thread

object (Thread)

Цепочка, в которой пользователь взаимодействовал с приложением Chat. Это может быть новая цепочка, созданная новым отправленным сообщением. Это поле заполняется, если событие взаимодействия связано с определенным сообщением или цепочкой.

space

object (Space)

Чат-группа, в которой пользователь взаимодействовал с приложением Chat.

action

object (FormAction)

Для событий взаимодействия CARD_CLICKED – данные о действии с формой, связанные с нажатием на карточку или диалоговое окно. Подробнее о том, как читать данные, введенные пользователями в формы на карточках…

configCompleteRedirectUrl

string

Этот URL заполняется для событий взаимодействия MESSAGE, ADDED_TO_SPACE и APP_COMMAND. После завершения процесса авторизации или настройки за пределами Google Chat пользователи должны быть перенаправлены на этот URL, чтобы сообщить Google Chat, что процесс авторизации или настройки прошел успешно. Подробнее о том, как подключить приложение Chat к другим сервисам и инструментам…

isDialogEvent

boolean

Для событий взаимодействия CARD_CLICKED и MESSAGE – взаимодействует ли пользователь с диалоговым окном или собирается это сделать.

dialogEventType

enum (DialogEventType)

Тип полученного события взаимодействия с диалоговым окном.

common

object (CommonEventObject)

Представляет информацию о клиенте пользователя, такую как локаль, хост-приложение и платформа. Для приложений Chat CommonEventObject включает информацию, отправленную пользователями, взаимодействующими с диалоговыми окнами, например данные, введенные на карточке.

appCommandMetadata

object (AppCommandMetadata)

Метаданные о команде приложения Chat.

CommonEventObject

Объект общего события – это часть объекта события, которая передает общую, не зависящую от хоста информацию дополнению от клиента пользователя. К ним относятся, например, региональные настройки пользователя, основное приложение и платформа.

Помимо триггеров главной страницы и контекстных триггеров, дополнения создают и передают объекты событий функциям обратного вызова действий, когда пользователь взаимодействует с виджетами. Функция обратного вызова дополнения может запрашивать объект общего события, чтобы определить содержимое открытых виджетов в клиенте пользователя. Например, дополнение может найти текст, который пользователь ввел в виджет TextInput в объекте eventObject.commentEventObject.formInputs.

Для приложений Chat – название функции, которую пользователь вызвал при взаимодействии с виджетом.

JSON-представление
{
  "userLocale": string,
  "hostApp": enum (HostApp),
  "platform": enum (Platform),
  "timeZone": {
    object (TimeZone)
  },
  "formInputs": {
    string: {
      object (Inputs)
    },
    ...
  },
  "parameters": {
    string: string,
    ...
  },
  "invokedFunction": string
}
Поля
userLocale

string

По умолчанию отключено. Идентификатор языка и страны/региона пользователя в формате кода языка ISO 639 и кода страны/региона ISO 3166. Пример: en-US.

Чтобы включить это поле, в манифесте дополнения нужно задать для addOns.common.useLocaleFromApp значение true. В список областей действия дополнения также необходимо включить https://www.googleapis.com/auth/script.locale. Подробнее о том, как получить доступ к региональным настройкам и часовому поясу пользователя…

hostApp

enum (HostApp)

Указывает на хост-приложение, в котором дополнение активно, когда создается объект события. Возможные значения:

  • GMAIL
  • CALENDAR
  • DRIVE
  • DOCS
  • SHEETS
  • SLIDES
  • CHAT
platform

enum (Platform)

Перечисление, указывающее на платформу, на которой произошло событие (WEB, IOS или ANDROID). Не поддерживается приложениями Chat.

timeZone

object (TimeZone)

По умолчанию отключено. Идентификатор часового пояса и смещение относительно всемирного координированного времени (UTC). Чтобы включить это поле, в манифесте дополнения нужно задать для addOns.common.useLocaleFromApp значение true. В список областей действия дополнения также необходимо включить https://www.googleapis.com/auth/script.locale. Подробнее о том, как получить доступ к региональным настройкам и часовому поясу пользователя…

Поддерживается только для типов событий CARD_CLICKED и SUBMIT_DIALOG.

formInputs

map (key: string, value: object (Inputs))

Карта, содержащая текущие значения виджетов на отображаемой карточке. Ключи карты – это строковые значения name, назначенные каждому виджету ввода (например, TextInput.name, SelectionInput.name, DateTimePicker.name или DecoratedText.SwitchControl.name).

Структура объекта map value зависит от типа виджета:

Примечание. Приведенные ниже примеры отформатированы для среды выполнения V8 в Apps Script. Если вы используете среду выполнения Rhino, после значения необходимо добавить [""]. Например, вместо e.commonEventObject.formInputs.employeeName.stringInputs.value[0] укажите e.commonEventObject.formInputs.employeeName[""].stringInputs.value[0]. Подробнее о средах выполнения в Apps Script читайте в обзоре среды выполнения V8.

  • Виджеты с одним значением (например, виджет TextInput или виджет SelectionInput типа DROPDOWN или RADIO_BUTTON): объект StringInputs, содержащий список из одного элемента (или пустой список, если выбор не сделан).

Пример. Для виджета ввода текста, у которого employeeName – это name, получить доступ к значению ввода текста можно с помощью e.commonEventObject.formInputs.employeeName.stringInputs.value[0].

  • Виджеты с несколькими значениями (например, виджет SelectionInput типа CHECK_BOX, SWITCH или MULTI_SELECT): объект StringInputs, содержащий список строк value выбранных элементов.

Пример. Для виджета с несколькими значениями, у которого participants – это name, получить доступ к массиву значений можно с помощью e.commonEventObject.formInputs.participants.stringInputs.value.

  • Виджет DecoratedText.SwitchControl – объект StringInputs. Если selected имеет значение true, stringInputs.value содержит поле value переключателя (или "", если value не указано; если у нескольких переключателей одинаковое значение name, в список включается value каждого выбранного переключателя). Если selected – false, то value переключателя не включается в stringInputs.value.

  • Окно выбора даты и времени (DateTimePickerType.DATE_AND_TIME): DateTimeInput object.

Пример. Для окна выбора с name, равным myDTPicker, доступ к объекту DateTimeInput можно получить с помощью e.commonEventObject.formInputs.myDTPicker.dateTimeInput.

  • Окно выбора даты (DateTimePickerType.DATE_ONLY): DateInput object.

Пример. Для средства выбора с name myDatePicker получите доступ к объекту DateInput с помощью e.commonEventObject.formInputs.myDatePicker.dateInput.

  • Выбор только времени (DateTimePickerType.TIME_ONLY): TimeInput object.

Пример. Для средства выбора с name myTimePicker получите доступ к объекту TimeInput с помощью e.commonEventObject.formInputs.myTimePicker.timeInput.

parameters

map (key: string, value: string)

Любые дополнительные параметры, которые вы передаете действию с помощью actionParameters или Action.setParameters().

Предварительная версия для разработчиков. Для дополнений, расширяющих возможности Google Chat, чтобы предлагать элементы на основе того, что пользователи вводят в меню с множественным выбором, используйте значение ключа "autocomplete_widget_query" (event.commonEventObject.parameters["autocomplete_widget_query"]). Вы можете использовать это значение для запроса к базе данных и предлагать пользователям выбираемые элементы по мере ввода. Подробнее о сборе и обработке информации от пользователей Google Chat…

invokedFunction

string

Название функции, которую нужно вызвать.

Это поле не заполняется для дополнений Google Workspace, которые расширяют возможности Google Chat. Чтобы получать данные функций, например идентификаторы, дополнения, расширяющие Chat, должны использовать поле parameters. Подробнее о создании интерактивных интерфейсов для приложений Chat…

TimeZone (часовой пояс)

Идентификатор часового пояса и смещение относительно всемирного координированного времени (UTC). Поддерживается только для типов событий CARD_CLICKED и SUBMIT_DIALOG.

JSON-представление
{
  "id": string,
  "offset": integer
}
Поля
id

string

Код часового пояса из базы данных IANA TZ, например "America/Toronto".

offset

integer

Разница между часовым поясом пользователя и всемирным координированным временем (UTC) в миллисекундах.

Входы

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

JSON-представление
{

  "stringInputs": {
    object (StringInputs)
  },
  "dateTimeInput": {
    object (DateTimeInput)
  },
  "dateInput": {
    object (DateInput)
  },
  "timeInput": {
    object (TimeInput)
  }
}
Поля
Ниже приведен список взаимоисключающих полей. В ответе будет задано не более одного из следующих полей:
stringInputs

object (StringInputs)

Список строк, представляющих значения, которые пользователь вводит в виджет.

Если виджет принимает только одно значение, например виджет TextInput, список содержит один строковый объект. Если виджет принимает несколько значений, например виджет SelectionInput с флажками, список содержит строковый объект для каждого значения, которое пользователь вводит или выбирает.

dateTimeInput

object (DateTimeInput)

Значения даты и времени, введенные в виджет DateTimePicker, который принимает и дату, и время.

dateInput

object (DateInput)

Значения дат из виджета DateTimePicker, который принимает только даты.

timeInput

object (TimeInput)

Значения времени, введенные в виджет DateTimePicker, который принимает только значения времени.

Конец взаимоисключающих полей.

StringInputs

Входной параметр для обычных виджетов. Для виджетов с одним значением это список с одним значением. Для виджетов с несколькими значениями, например флажков, представлены все значения.

JSON-представление
{
  "value": [
    string
  ]
}
Поля
value[]

string

Список строк, введенных пользователем.

DateTimeInput

Значения даты и времени.

JSON-представление
{
  "msSinceEpoch": string,
  "hasDate": boolean,
  "hasTime": boolean
}
Поля
msSinceEpoch

string (int64 format)

Время с начала эпохи в миллисекундах.

hasDate

boolean

Указывает, содержит ли входной параметр datetime календарную дату.

hasTime

boolean

Содержит ли входной параметр datetime временную метку.

DateInput

Значения дат.

JSON-представление
{
  "msSinceEpoch": string
}
Поля
msSinceEpoch

string (int64 format)

Время с начала эпохи в миллисекундах.

TimeInput

Значения времени.

JSON-представление
{
  "hours": integer,
  "minutes": integer
}
Поля
hours

integer

Час в 24-часовом формате.

minutes

integer

Количество минут после часа. Допустимые значения: от 0 до 59.

AppCommandMetadata

Метаданные о команде приложения Chat.

JSON-представление
{
  "appCommandId": integer,
  "appCommandType": enum (AppCommandType)
}
Поля
appCommandId

integer

Идентификатор команды, указанный в конфигурации Chat API.

appCommandType

enum (AppCommandType)

Тип команды приложения Chat.