На этой странице описаны события чата, на которые приложение чата может подписаться, используя API событий Google Workspace. После того, как вы определите, какие типы событий вам нужны, создайте подписку, чтобы начать получать события из чата.
Помимо подписки на события, вы также можете запрашивать события, используя API Google Chat. Вызов API Chat позволяет периодически получать события или наверстывать упущенное из-за сбоя в работе сервиса, если вы пропустили подписку. Чтобы узнать о способах получения событий Chat и ответа на них, см. раздел «Работа с событиями из Chat» в документации Chat.
Поддерживаемые события чата
Подписки Google Workspace позволяют получать события, касающиеся следующих типов изменений в чате:
- Новые, обновленные или удаленные сообщения в этом пространстве.
- Новые или удалённые реакции на сообщение.
- В этом пространстве появились новые, обновились данные или были удалены некоторые участники .
- Изменения в пространстве , на которое вы подписаны, например, обновление названия или описания пространства.
- Изменения в доступности пользователя.
- Изменения в параметрах spaceReadState или threadReadState пользователя.
Ресурсы, за которыми вы можете следить на предмет событий.
Для получения событий необходимо указать ресурс чата, который следует отслеживать, — это целевой ресурс подписки.
API событий Google Workspace поддерживает следующие целевые ресурсы для чата:
| Целевой ресурс | Формат | Ограничения |
|---|---|---|
| Космос | где SPACE — это идентификатор в имени ресурса | Пользователь чата или приложение чата, авторизующее подписку, должно быть участником пространства через свою учетную запись Google Workspace или Google Account. Поддерживается: |
| Все места для пользователя | | Подписка получает события только для тех пространств, где пользователь является участником через свою учетную запись Google Workspace или Google Account. Поддерживается только аутентификация пользователя . |
| Пользователь | где USER — это идентификатор в имени ресурса | Подписка получает только события, касающиеся пользователя, который авторизовал подписку. Пользователь не может авторизовать подписку от имени других пользователей. Поддерживается только аутентификация пользователя . |
| Клиент (предварительная версия для разработчиков ) | где CUSTOMER — это идентификатор клиента. Вы также можете использовать псевдоним | Подписка получает события для всех пространств и пользователей, управляемых доменом клиента. Поддерживается только аутентификация приложений с подтверждением администратора . |
Типы событий для создания подписок
При создании подписки используйте поле eventTypes[] , чтобы указать, какие типы событий вы хотите получать. Типы событий форматируются в соответствии со спецификацией CloudEvents, например, google.workspace. APPLICATION . RESOURCE . VERSION . ACTION .
Например, чтобы получать события о присоединении пользователей к чату, укажите чат в качестве целевого ресурса, а тип события — google.workspace.chat.membership.v1.created . Чтобы получать события о присоединении конкретного пользователя к любому чату, укажите пользователя в качестве целевого ресурса, а тип события — google.workspace.chat.membership.v1.created . Более подробную информацию о работе событий см. в разделе «Структура событий Google Workspace» .
В таблице ниже показано, какие типы событий поддерживаются для подписок на пространства и подписок на пользователей. Чтобы узнать об исключениях, определяющих, что запускает событие, см. раздел «Ограничения» .
| Тип события | Формат | Данные ресурсов | ||
|---|---|---|---|---|
| Подписки на помещения | ||||
| Сообщение опубликовано. | | | ||
| Сообщение обновлено. | | | ||
| Сообщение удалено. | | | ||
| Происходит реакция. | | | ||
| Реакция удаляется. | | | ||
| В пространство добавляется новый участник. | | | ||
| Информация о пользователе обновляется в этом разделе. | | | ||
| Участник удаляется из помещения. | | | ||
| Помещение обновлено. | | | ||
| Пробел удален. | | | ||
| Подписки для пользователей | ||||
| Пользователь становится участником пространства. Не все новые участники запускают события. Подробности см. в разделе «Ограничения». | | | ||
| Информация о членстве пользователя в пространстве обновляется. | | | ||
| Пользователь удаляется как непосредственный участник пространства. | | | ||
| Обновлено состояние чтения пользовательского пространства. | | | ||
| Состояние чтения потока пользователя обновлено. | | | ||
| Подписки для клиентов ( предварительная версия для разработчиков) | ||||
| Событие происходит в любом пространстве, сообщении, реакции, статусе участника или состоянии прочтения пользователя в вашей организации Google Workspace. | Поддерживает все типы событий, перечисленные для подписок на пространство и пользователей. | Зависит от типа события (например, | ||
Типы пакетных событий (только для вывода)
Помимо получения событий тех типов, на которые вы подписаны, ваше приложение «Чат» может также получать пакетные события. Пакетное событие — это событие, представляющее собой множество событий одного типа, происходящих за короткий промежуток времени. Полезная нагрузка пакетного события содержит список всех измененных ресурсов.
Например, если пользователь одновременно добавляет 20 пользователей в пространство, ваше приложение чата может получить пакетное событие ( google.workspace.chat.membership.v1.batchCreated ). Полезная нагрузка события содержит список всех новых ресурсов Membership , созданных при добавлении пользователем участников в пространство.
Для каждого типа событий, на которые вы подписаны, вы получаете пакетное событие, поэтому вам не нужно указывать пакетные события при создании подписки. Например, если вы подписываетесь на новые реакции ( google.workspace.chat.reaction.v1.created ), ваше приложение чата автоматически настраивается на получение пакетных событий реакций ( google.workspace.chat.reaction.v1.batchCreated ).
В следующей таблице показаны возможные пакетные события для подписки:
| Тип пакетного события | Формат |
|---|---|
| Опубликовано несколько сообщений. | |
| Обновлено несколько сообщений. | |
| Удаляется несколько сообщений. | |
| Происходит множество реакций. | |
| Удаляется несколько реакций. | |
| В подписанное пространство добавлено несколько участников, или же подписанный пользователь добавлен в несколько пространств. | |
| Обновление данных о нескольких подписках происходит либо в личном кабинете подписчика, либо для самого подписавшегося пользователя. | |
| Из подписанного пространства удалено несколько участников, или же подписанный пользователь был удален из нескольких пространств. | |
| В помещении было проведено множество обновлений. | |
| Для пользователя, оформившего подписку, обновляются состояния чтения нескольких пространств. | |
| Для пользователя, на которого оформлена подписка, обновляются состояния чтения в нескольких потоках. | |
данные о событии
В этом разделе описываются данные о событиях и приводятся примеры полезной нагрузки для событий в чате.
Когда ваша подписка на Google Workspace получает событие из чата, поле data содержит полезную нагрузку для этого события. Эта полезная нагрузка содержит информацию об измененном ресурсе Google Workspace. Например, если вы подписаны на события членства в пространстве, полезная нагрузка для этих событий будет содержать информацию об измененном ресурсе spaces.membership .
Данные ресурсов в полезной нагрузке события
При создании подписки вы можете указать, хотите ли вы, чтобы полезная нагрузка включала подробную информацию о ресурсе или только его название. Например, если вы хотите получать события о пользователях в чате, укажите, какие поля ресурса членства вы хотите включить в полезную нагрузку события.
В следующей таблице приведены примеры JSON-данных для подписки на чат spaces/AAAABBBBBB . Для каждого события, полученного подпиской, данные отображаются в поле data события:
| Пример | Тип события | JSON-данные |
|---|---|---|
Пользователь размещает в поле сообщение со словами "Hello world". | | Включает данные о ресурсах:
{
"message":
{
"name": "spaces/Исключаются данные о ресурсах:
{
"message":
{
"name": "spaces/ |
| Пользователь становится менеджером пространства. | | Включает данные о ресурсах:
{
"membership":
{
"name": "spaces/Исключаются данные о ресурсах:
{
"membership":
{
"name": "spaces/ |
| Пользователь обновляет описание помещения, указывая "Отдел продаж Cymbal Labs". | google.workspace.chat.space.v1.updated | Включает данные о ресурсах:
{
"space":
{
"name": "spaces/Исключаются данные о ресурсах:
{
"space":
{
"name": "spaces/ |
| В чат одновременно были добавлены два пользователя. | google.workspace.chat.membership.v1.batchCreated | Включает данные о ресурсах:
{
"memberships": [
{
"membership": {
"name": "spaces/Исключаются данные о ресурсах:
{
"memberships": [
{
"membership": {
"name": "spaces/ |
| Пользователь реагирует на сообщение смайликом 😊. | google.workspace.chat.reaction.v1.created | Включает данные о ресурсах:
{
"reaction":
{
"name": "spaces/Исключаются данные о ресурсах:
{
"reaction":
{
"name": "spaces/ |
| Пользователи реагируют на сообщение с помощью эмодзи 😊 и 😸. | google.workspace.chat.reaction.v1.batchCreated | Включает данные о ресурсах:
{
"reactions": [
{
"reaction": {
"name": "spaces/Исключаются данные о ресурсах:
{
"reactions": [
{
"reaction": {
"name": "spaces/ |
| Пользователь заходит в непрочитанное пространство, что обновляет состояние «прочитано» этого пространства. | google.workspace.chat.spaceReadState.v1.updated | Включает данные о ресурсах:
{
"spaceReadState": {
"name": "users/Исключаются данные о ресурсах:
{
"spaceReadState": {
"name": "users/ |
| Пользователь читает сообщение в потоке, что обновляет состояние чтения в этом потоке. | google.workspace.chat.threadReadState.v1.updated | Включает данные о ресурсах:
{
"threadReadState": {
"name": "users/Исключаются данные о ресурсах:
{
"threadReadState": {
"name": "users/ |
| Пользователь становится доступен в чате. | google.workspace.chat.availability.v1.updated | Включает данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "ACTIVE"
}
}
Исключаются данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
| Пользователь переходит в состояние бездействия в чате. | google.workspace.chat.availability.v1.updated | Включает данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "IDLE",
}
}
Исключаются данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
Пользователь указывает в чате, что он недоступен ( Away . | google.workspace.chat.availability.v1.updated | Включает данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "AWAY",
}
}
Исключаются данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
Пользователь устанавливает для себя режим « Do not disturb в чате. | google.workspace.chat.availability.v1.updated | Включает данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "DO_NOT_DISTURB",
"doNotDisturbMetadata": {
"expirationTime": "2026-03-24T18:36:31.337Z"
}
}
}
Исключаются данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
| Пользователь устанавливает собственный статус в чате. | google.workspace.chat.availability.v1.updated | Включает данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "ACTIVE",
"customStatus": {
"text": "Be right back",
"emoji": {
"unicode": "👟"
},
"expireTime": "2026-03-24T18:38:05.583655Z"
}
}
}
Исключаются данные о ресурсах:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
Ограничения и особенности доставки
Общие ограничения
- Чтобы получать события, связанные с членством, пользователь или приложение чата должны быть непосредственными членами пространства. Если пользователь был добавлен, обновлен или удален из пространства косвенно через группу Google, подписка не будет получать эти события. Чтобы понять, как работает членство в группах Google, см. раздел «Добавление группы Google в пространство» .
Подписки пользователей
- Для подписок пользователей события, касающиеся новых участников в личных сообщениях или безымянных групповых чатах (
google.workspace.chat.membership.v1.created), срабатывают только после отправки первого сообщения.
Подписки для клиентов ( предварительная версия для разработчиков)
Для клиентских подписок действуют следующие ограничения:
- Организация Google Workspace должна иметь как минимум одну лицензию Enterprise SKU. Обратите внимание, что это требование не является строгим на этапе программы предварительного просмотра для разработчиков, но будет введено в будущем (об этом будет объявлено отдельно).
- Приложение для чата может создать только одну клиентскую подписку для данной организации Google Workspace. В общей сложности организация Google Workspace может иметь до пяти клиентских подписок (созданных разными приложениями для чата).
При оформлении клиентских подписок доставка мероприятий осуществляется в соответствии со следующими общими правилами:
- Мероприятия в пространстве : проводятся только в том случае, если мероприятие проходит в пространстве, управляемом вашей организацией Google Workspace.
- События пользователей : Доставляются только в том случае, если событие происходит для пользователя, принадлежащего к вашей организации Google Workspace.
Единственное исключение из этих правил касается мероприятий для членов организации . Ваша подписка может получать информацию о мероприятиях для членов организации как из пространств, управляемых вашей организацией, так и из пространств, управляемых сторонними организациями, но способ их доставки зависит от того, какая организация управляет данным пространством:
Пространства, управляемые вашей организацией Google Workspace.
Если в пространстве, управляемом организацией Google Workspace, происходит изменение состава участников, это регистрируется как событие пространства .
Название ресурса космического события имеет следующий формат:
spaces/{spaceId}/spaceEvents/{spaceEventId}
Помещения, находящиеся в управлении сторонних организаций.
Если членство пользователя, управляемого вашей организацией Google Workspace, изменяется в пространстве, управляемом внешней организацией (например, во внешнем именованном пространстве или в личном сообщении, созданном внешним пользователем), ваша подписка получает это событие как событие пользователя .
Имя ресурса пользовательского события имеет следующий формат:
users/{userId}/userEvents/{userEventId}
Связанные темы
- Структура событий Google Workspace
- Выберите области действия OAuth.
- Создайте подписку , чтобы получать события чата.