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

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

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

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

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

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

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

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

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

//chat.googleapis.com/spaces/ SPACE

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

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

//chat.googleapis.com/spaces/-

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

//cloudidentity.googleapis.com/users/ USER

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

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

Клиент (предварительная версия для разработчиков )

//admin.googleapis.com/customers/ CUSTOMER

где CUSTOMER — это идентификатор клиента. Вы также можете использовать псевдоним my_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.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

Обновлено состояние чтения пользовательского пространства.

google.workspace.chat.spaceReadState.v1.updated

spaceReadState

Состояние чтения потока пользователя обновлено.

google.workspace.chat.threadReadState.v1.updated

threadReadState

Подписки для клиентов ( предварительная версия для разработчиков)
Событие происходит в любом пространстве, сообщении, реакции, статусе участника или состоянии прочтения пользователя в вашей организации Google Workspace.

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

Зависит от типа события (например, space , space.message , space.membership или spaceReadState ).

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

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

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

Для каждого типа событий, на которые вы подписаны, вы получаете пакетное событие, поэтому вам не нужно указывать пакетные события при создании подписки. Например, если вы подписываетесь на новые реакции ( google.workspace.chat.reaction.v1.created ), ваше приложение чата автоматически настраивается на получение пакетных событий реакций ( 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.spaceReadState.v1.batchUpdated

Для пользователя, на которого оформлена подписка, обновляются состояния чтения в нескольких потоках.

google.workspace.chat.threadReadState.v1.batchUpdated

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

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

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

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

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

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

Пример Тип события JSON-данные

Пользователь размещает в поле сообщение со словами "Hello world".

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.spaceReadState.v1.updated

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

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState",
    "lastReadTime": "2026-04-14T14:03:46.431760Z"
  }
}
      

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

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState"
  }
}
      
Пользователь читает сообщение в потоке, что обновляет состояние чтения в этом потоке. google.workspace.chat.threadReadState.v1.updated

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

{
  "threadReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/threads/THREAD_ID/threadReadState",
    "lastReadTime": "2026-04-14T14:03:46.431760Z"
  }
}
      

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

{
  "threadReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/threads/THREAD_ID/threadReadState"
  }
}
      
Пользователь становится доступен в чате. 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}