Подпишитесь на события Google Chat

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

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

Поддерживаемые события чата

Подписки на Google Workspace позволяют получать события о следующих типах изменений в Chat:

  • Новые, обновленные или удаленные сообщения в группе.
  • Новые или удаленные реакции на сообщение.
  • Новые, обновленные или удаленные участники в пространстве.
  • Изменения в пространстве , на которое вы подписаны, например обновленное имя или описание пространства.

Ресурсы, на которых вы можете отслеживать события

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

API Google Workspace Events поддерживает следующие целевые ресурсы для Chat:

Целевой ресурс Формат Ограничения
Космос

//chat.googleapis.com/spaces/ SPACE

где SPACE — это идентификатор в имени ресурса space Chat API. Вы можете получить идентификатор из URL-адреса пространства или с помощью метода spaces.list() .

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

//chat.googleapis.com/spaces/-

Подписка получает события только для тех пространств, участником которых является пользователь через свою Google Workspace или учетную запись Google.
Пользователь

//cloudidentity.googleapis.com/users/ USER

где USER — это идентификатор в имени user ресурса Chat API. Подробную информацию см. в разделе Идентификация и указание пользователей Google Chat .

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

Типы событий для создания подписок

Когда вы создаете подписку, вы используете поле eventTypes[] чтобы указать, какие типы событий вы хотите получать. Типы событий форматируются в соответствии со спецификацией CloudEvents, например google.workspace. APPLICATION . RESOURCE . VERSION . ACTION .

Например, чтобы получать события о том, что пользователи присоединяются к чат-группе, вы указываете чат-группу в качестве целевого ресурса, а тип события — google.workspace.chat.membership.v1.created . Чтобы получать события о присоединении определенного пользователя к какому-либо пространству, вы указываете пользователя в качестве целевого ресурса и тип события — google.workspace.chat.membership.v1.created . Дополнительную информацию о том, как работают события, см. в разделе Структура событий Google Workspace .

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

Тип события Формат Данные ресурса
Подписки на пространства
Сообщение опубликовано.

google.workspace.chat.message.v1.created

space.message

Сообщение обновляется.

google.workspace.chat.message.v1.updated

space.message

Сообщение удалено.

google.workspace.chat.message.v1.deleted

space.message

Возникает реакция.

google.workspace.chat.reaction.v1.created

space.message.reaction

Реакция удалена.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Участник добавляется в пространство.

google.workspace.chat.membership.v1.created

space.membership

Участник обновляется в пространстве.

google.workspace.chat.membership.v1.updated

space.membership

Участник удаляется из пространства.

google.workspace.chat.membership.v1.deleted

space.membership

Пространство обновляется.

google.workspace.chat.space.v1.updated

space

Пространство удалено.

google.workspace.chat.space.v1.deleted

space

Подписки на пользователей
Пользователь становится участником пространства.

Не все новые участники вызывают события. Подробности см. в разделе «Ограничения».

google.workspace.chat.membership.v1.created

space.membership

Членство пользователя в пространстве обновляется.

google.workspace.chat.membership.v1.updated

space.membership

Пользователь удаляется как непосредственный участник пространства.

google.workspace.chat.membership.v1.deleted

space.membership

Типы пакетных событий (только вывод)

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

Например, если пользователь одновременно добавляет в пространство 20 пользователей, ваше приложение Chat может получить пакетное событие ( google.workspace.chat.membership.v1.batchCreated ). Полезная нагрузка события содержит список всех новых ресурсов Membership , которые были созданы, когда пользователь добавлял участников в пространство.

Вы получаете пакетное событие для любого типа событий, на который вы подписаны, поэтому вам не нужно указывать пакетные события при создании подписки. Например, если вы подписываетесь на новые реакции ( google.workspace.chat.reaction.v1.created ), ваше приложение Chat автоматически настраивается на получение событий пакетной реакции ( google.workspace.chat.reaction.v1.batchCreated ).

В следующей таблице показаны возможные пакетные события для подписки:

Тип пакетного события Формат
Опубликовано несколько сообщений.

google.workspace.chat.message.v1.batchCreated

Несколько сообщений обновляются.

google.workspace.chat.message.v1.batchUpdated

Несколько сообщений удаляются.

google.workspace.chat.message.v1.batchDeleted

Создается множество реакций.

google.workspace.chat.reaction.v1.batchCreated

Множественные реакции удаляются.

google.workspace.chat.reaction.v1.batchDeleted

В пространство, на которое подписано, добавлено несколько участников, или подписанный пользователь был добавлен в несколько пространств.

google.workspace.chat.membership.v1.batchCreated

Множественное членство обновляется в подписанном пространстве или для подписанного пользователя.

google.workspace.chat.membership.v1.batchUpdated

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

google.workspace.chat.membership.v1.batchDeleted

В пространстве есть несколько обновлений.

google.workspace.chat.space.v1.batchUpdated

Данные о событии

В этом разделе описаны данные событий и примеры полезных данных для событий в Chat.

Когда ваша подписка на Google Workspace получает событие из Chat, поле data содержит полезную нагрузку для этого события. Эта полезная нагрузка содержит информацию об изменившемся ресурсе Google Workspace. Например, если вы подписались на события членства в пространстве, полезные данные для этих событий содержат информацию об измененном ресурсе spaces.membership .

Данные ресурса в полезных данных события

При создании подписки вы можете указать, хотите ли вы, чтобы полезные данные включали сведения о ресурсе или только имя ресурса. Например, если вы хотите получать события об участниках в пространстве чата, вы можете указать, какие поля ресурса членства вы хотите получать в полезных данных события.

В следующей таблице приведены примеры полезных данных JSON для подписки на spaces/AAAABBBBBB . Для каждого события, которое получает подписка, полезные данные отображаются в поле data события:

Пример Тип события Полезная нагрузка JSON

Пользователь публикует сообщение в пространстве с надписью «Привет, мир».

google.workspace.chat.message.v1.created

Включает данные о ресурсах
{
    "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"
    }
}
      
Пользователь становится менеджером пространства.

google.workspace.chat.membership.v1.updated

Включает данные о ресурсах
{
    "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 в пространство .