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

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

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

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

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

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

Ресурсы, которые вы можете отслеживать на предмет событий

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

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

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

//chat.googleapis.com/spaces/ SPACE

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

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

//chat.googleapis.com/spaces/-

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

//cloudidentity.googleapis.com/users/ USER

Где USER — это идентификатор в имени ресурса user 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 участников, ваше приложение чата может получить пакетное событие ( 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

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

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

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

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

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

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

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

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

google.workspace.chat.message.v1.created

Включает данные о ресурсах:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID",
        "sender":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "2023-09-07T21:37:36.260127Z",
        "text": "Hello world",
        "thread":
        {
            "name": "spaces/SPACE_ID/threads/THREAD_ID"
        },
        "space":
        {
            "name": "spaces/SPACE_ID"
        },
        "argumentText": "Hello world"
    }
}
      

Исключает данные о ресурсах:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID"
    }
}
      
Пользователь становится менеджером пространства.

google.workspace.chat.membership.v1.updated

Включает данные о ресурсах:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID",
        "state": "JOINED",
        "member":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "createTime": "1970-01-01T00:00:00Z",
        "role": "ROLE_MANAGER"
    }
}
      

Исключает данные о ресурсах:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID"
    }
}
      
Пользователь обновляет описание пространства на «Отдел продаж Cymbal Labs». google.workspace.chat.space.v1.updated

Включает данные о ресурсах:

{
    "space":
    {
        "name": "spaces/SPACE_ID",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      

Исключает данные о ресурсах:

{
    "space":
    {
        "name": "spaces/SPACE_ID"
    }
}
      
В пространство одновременно были добавлены два пользователя чата. google.workspace.chat.membership.v1.batchCreated

Включает данные о ресурсах:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID",
            "state": "JOINED",
            "member":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        }
    ]
}
      

Исключает данные о ресурсах:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        }
    ]
}
      
Пользователь реагирует на сообщение с помощью эмодзи 😊. google.workspace.chat.reaction.v1.created

Включает данные о ресурсах:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        "user":
        {
            "name": "users/USER_ID",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      

Исключает данные о ресурсах:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
    }
}
      
Пользователи реагируют на сообщение с помощью эмодзи 😊 и 😸. google.workspace.chat.reaction.v1.batchCreated

Включает данные о ресурсах:

{
    "reactions": [
        {
          "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😊"
            }
          }
        },
        {
          "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
            "user":
            {
                "name": "users/USER_ID",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😸"
            }
          }
        }
    ]
}
      

Исключает данные о ресурсах:

{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
        },
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        }
      }
    ]
}
      

Ограничения

  • Для подписок на пользователей события о новых участниках в личных сообщениях или неименованных групповых чатах ( google.workspace.chat.membership.v1.created ) срабатывают только после публикации первого сообщения.
  • Чтобы получать уведомления о событиях участия, пользователь или чат-приложение должны быть непосредственным участником пространства. Если пользователь был добавлен, обновлен или удален из пространства косвенно через группу Google, подписка не получает уведомления о событиях участия. Чтобы понять, как работает членство в группах Google, см. статью Добавление группы Google в пространство .