На этой странице описаны события Google Chat, на которые приложение Google Chat может подписаться с помощью API событий Google Workspace. После того, как вы решите, какие типы событий вам нужны, создайте подписку , чтобы начать получать события из Google Chat.
Помимо подписки на события, вы также можете запрашивать события, вызывая API чата. Вызов API чата позволяет вам периодически получать события или узнавать о событиях, которые вы могли пропустить из-за подписки из-за сбоя. Чтобы узнать о том, как получать события Chat и отвечать на них, см. раздел Работа с событиями из Google Chat в документации Chat.
Поддерживаемые события чата
Подписки на Google Workspace позволяют получать события о следующих типах изменений в Chat:
- Новые, обновленные или удаленные сообщения в группе.
- Новые или удаленные реакции на сообщение.
- Новые, обновленные или удаленные участники в пространстве.
- Изменения в пространстве , на которое вы подписаны, например обновленное имя или описание пространства.
Ресурсы, на которых вы можете отслеживать события
Чтобы получать события, вы указываете ресурс Chat для мониторинга, который называется целевым ресурсом подписки.
API Google Workspace Events поддерживает следующие целевые ресурсы для Chat:
Целевой ресурс | Формат | Ограничения |
---|---|---|
Космос | где SPACE — это идентификатор в имени ресурса | Пользователь Chat, который авторизует подписку, должен быть участником пространства через свою Google Workspace или учетную запись Google. |
Все пространства для пользователя | | Подписка получает события только для тех пространств, участником которых является пользователь через свою Google Workspace или учетную запись Google. |
Пользователь | где USER — это идентификатор в имени | Подписка получает только события о пользователе, который авторизовал подписку. Пользователь не может авторизовать подписку от имени других пользователей. |
Типы событий для создания подписок
Когда вы создаете подписку, вы используете поле eventTypes[]
, чтобы указать, какие типы событий вы хотите получать. Типы событий форматируются в соответствии со спецификацией CloudEvents, например google.workspace. APPLICATION . RESOURCE . VERSION . ACTION
.
Например, чтобы получать события о том, что пользователи присоединяются к чат-группе, вы указываете чат-группу в качестве целевого ресурса, а тип события — google.workspace.chat.membership.v1.created
. Чтобы получать события о присоединении определенного пользователя к какому-либо пространству, вы указываете пользователя в качестве целевого ресурса и тип события — google.workspace.chat.membership.v1.created
. Дополнительную информацию о том, как работают события, см. в разделе Структура событий Google Workspace .
В следующей таблице показано, какие типы событий поддерживаются для подписок на пространства и подписок для пользователей. Чтобы узнать об исключениях, вызывающих событие, см. раздел Ограничения .
Тип события | Формат | Данные ресурса | ||
---|---|---|---|---|
Подписки на пространства | ||||
Сообщение опубликовано. | | | ||
Сообщение обновляется. | | | ||
Сообщение удалено. | | | ||
Возникает реакция. | | | ||
Реакция удалена. | | | ||
Участник добавляется в пространство. | | | ||
Участник обновляется в пространстве. | | | ||
Участник удаляется из пространства. | | | ||
Пространство обновляется. | | | ||
Пространство удалено. | | | ||
Подписки на пользователей | ||||
Пользователь становится участником пространства. Не все новые участники вызывают события. Подробности см. в разделе «Ограничения». | | | ||
Членство пользователя в пространстве обновляется. | | | ||
Пользователь удаляется как непосредственный участник пространства. | | |
Типы пакетных событий (только вывод)
Помимо получения типов событий, на которые вы подписаны, ваше приложение Chat также может получать пакетные события. Пакетное событие — это событие, которое представляет собой множество событий одного типа, происходящих за короткий период времени. Полезная нагрузка пакетного события содержит список всех измененных ресурсов.
Например, если пользователь одновременно добавляет в пространство 20 пользователей, ваше приложение Chat может получить пакетное событие ( google.workspace.chat.membership.v1.batchCreated
). Полезная нагрузка события содержит список всех новых ресурсов Membership
, которые были созданы, когда пользователь добавлял участников в пространство.
Вы получаете пакетное событие для любого типа событий, на который вы подписаны, поэтому вам не нужно указывать пакетные события при создании подписки. Например, если вы подписываетесь на новые реакции ( google.workspace.chat.reaction.v1.created
), ваше приложение Chat автоматически настраивается на получение событий пакетной реакции ( google.workspace.chat.reaction.v1.batchCreated
).
В следующей таблице показаны возможные пакетные события для подписки:
Тип пакетного события | Формат |
---|---|
Опубликовано несколько сообщений. | |
Несколько сообщений обновляются. | |
Несколько сообщений удаляются. | |
Создается множество реакций. | |
Множественные реакции удалены. | |
В пространство, на которое подписано, добавлено несколько участников, или подписанный пользователь был добавлен в несколько пространств. | |
Множественное членство обновляется в подписанном пространстве или для подписанного пользователя. | |
Несколько участников удалены из подписанного пространства, или подписанный пользователь был удален из нескольких пространств. | |
В пространстве есть несколько обновлений. | |
Данные о событии
В этом разделе описаны данные событий и примеры полезных данных для событий в Chat.
Когда ваша подписка на Google Workspace получает событие из Chat, поле data
содержит полезную нагрузку для этого события. Эта полезная нагрузка содержит информацию об изменившемся ресурсе Google Workspace. Например, если вы подписались на события членства в пространстве, полезные данные для этих событий содержат информацию об изменившемся ресурсе spaces.membership
.
Данные ресурса в полезных данных события
При создании подписки вы можете указать, хотите ли вы, чтобы полезные данные включали сведения о ресурсе или только имя ресурса. Например, если вы хотите получать события об участниках в пространстве чата, вы можете указать, какие поля ресурса членства вы хотите получать в полезных данных события.
В следующей таблице приведены примеры полезных данных JSON для подписки на spaces/AAAABBBBBB
. Для каждого события, которое получает подписка, полезные данные отображаются в поле data
события:
Пример | Тип события | Полезная нагрузка JSON |
---|---|---|
Пользователь публикует сообщение в пространстве с надписью «Привет, мир». | | Включает данные о ресурсах { "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD", "sender": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "2023-09-07T21:37:36.260127Z", "text": "Hello world", "thread": { "name": "spaces/AAAABBBBBB/threads/EEEEEEEEEEEE" }, "space": { "name": "spaces/AAAABBBBBB" }, "argumentText": "Hello world" } } Исключает данные ресурсов { "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD" } } |
Пользователь становится менеджером пространства. | | Включает данные о ресурсах { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321", "state": "JOINED", "member": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MANAGER" } } Исключает данные ресурсов { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } } |
Пользователь обновляет описание помещения на «Команда продаж Cymbal Labs». | google.workspace.chat.space.v1.updated | Включает данные о ресурсах { "space": { "name": "spaces/AAAABBBBBB", "displayName": "Cymbal Sales", "spaceThreadingState": "THREADED_MESSAGES", "spaceType": "SPACE", "spaceDetails": { "description": "Sales team for Cymbal Labs." }, "spaceHistoryState": "HISTORY_ON" } } Исключает данные ресурсов { "space": { "name": "spaces/AAAABBBBBB" } } |
Два пользователя чата были добавлены в пространство одновременно. | google.workspace.chat.membership.v1.batchCreated | Включает данные о ресурсах { "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321", "state": "JOINED", "member": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MEMBER" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/987654321234567890", "state": "JOINED", "member": { "name": "users/987654321234567890", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MEMBER" } } ] } Исключает данные ресурсов { "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/98765432123456789019" } } ] } |
Пользователь реагирует на сообщение смайлом 😊. | google.workspace.chat.reaction.v1.created | Включает данные о ресурсах { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222", "user": { "name": "users/1234567890987654321", "type": "HUMAN" }, "emoji": { "unicode": "😊" } } } Опускает данные о ресурсах { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" } } |
Пользователи реагируют на сообщение смайлами 😊 и 😸. | google.workspace.chat.reaction.v1.batchCreated | Включает данные о ресурсах { "reactions": [ { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222", "user": { "name": "users/1234567890987654321", "type": "HUMAN" }, "emoji": { "unicode": "😊" } } }, { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444", "user": { "name": "users/98765431234564321", "type": "HUMAN" }, "emoji": { "unicode": "😸" } } } ] } Опускает данные о ресурсах { "reactions": [ { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" }, "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444", } } ] } |
Ограничения
- Что касается подписок на пользователей, события о новых участниках в личных сообщениях или безымянных групповых чатах (
google.workspace.chat.membership.v1.created
) срабатывают только после публикации первого сообщения. - Чтобы получать события членства, пользователь должен быть непосредственным участником пространства. Если пользователь был добавлен, обновлен или удален в пространстве косвенно через группу Google, подписка не получает эти события членства. Чтобы понять, как работает членство в группах Google, см. раздел Добавление группы Google в пространство .
Связанные темы
- Структура событий Google Workspace
- Выберите области действия OAuth
- Создайте подписку , чтобы получать события Chat