Subskrybowanie wydarzeń w Google Chat

Na tej stronie opisujemy zdarzenia w Google Chat, które aplikacja do obsługi czatu może subskrybować za pomocą interfejsu Google Workspace Events API. Po określeniu, jakich typów zdarzeń potrzebujesz, utwórz subskrypcję, aby zacząć otrzymywać zdarzenia z Google Chat.

Oprócz subskrybowania zdarzeń możesz też wysyłać do nich zapytania, wywołując interfejs Google Chat API. Wywoływanie interfejsu Chat API umożliwia okresowe pobieranie zdarzeń lub nadrabianie zaległości w zdarzeniach, które mogły zostać pominięte w ramach subskrypcji z powodu awarii. Więcej informacji o sposobach otrzymywania zdarzeń w Google Chat i odpowiadania na nie znajdziesz w artykule Praca ze zdarzeniami z Google Chat w dokumentacji Google Chat.

Obsługiwane zdarzenia Google Chat

Subskrypcje Google Workspace umożliwiają otrzymywanie zdarzeń dotyczących tych typów zmian w Google Chat:

  • Nowe, zaktualizowane lub usunięte wiadomości w pokoju.
  • nowe lub usunięte reakcje na wiadomość;
  • Nowi, zaktualizowani lub usunięci członkowie pokoju.
  • zmiany w pokoju, do którego subskrybujesz, np. zaktualizowana nazwa lub opis pokoju.

Zasoby, które możesz monitorować pod kątem zdarzeń

Aby odbierać zdarzenia, musisz określić zasób Google Chat do monitorowania, który jest nazywany zasobem docelowym subskrypcji.

Google Workspace Events API obsługuje te zasoby docelowe w przypadku Google Chat:

Zasób docelowy Format Ograniczenia
Spacja

//chat.googleapis.com/spaces/SPACE

gdzie SPACE to identyfikator w nazwie zasobu zasobu interfejsu Chat API space. Możesz go uzyskać z adresu URL przestrzeni lub za pomocą metody spaces.list().

Użytkownik Google Chat lub aplikacja Google Chat, która autoryzuje subskrypcję, musi być członkiem pokoju na koncie Google Workspace lub Google. Obsługiwane:
Wszystkie przestrzenie użytkownika

//chat.googleapis.com/spaces/-

Subskrypcja otrzymuje tylko wydarzenia dotyczące pokoi, w których użytkownik jest członkiem za pomocą konta Google Workspace lub konta Google. Obsługuje tylko uwierzytelnianie użytkownika.
Użytkownik

//cloudidentity.googleapis.com/users/USER

gdzie USER to identyfikator w nazwie zasobu zasobu interfejsu Chat API user. Szczegółowe informacje znajdziesz w artykule Identyfikowanie i określanie użytkowników Google Chat.

Subskrypcja otrzymuje tylko zdarzenia dotyczące użytkownika, który ją autoryzował. Użytkownik nie może autoryzować subskrypcji w imieniu innych użytkowników. Obsługuje tylko uwierzytelnianie użytkownika.

Typy zdarzeń do tworzenia subskrypcji

Podczas tworzenia subskrypcji użyj pola eventTypes[] do określenia typów zdarzeń, które chcesz otrzymywać. Typy zdarzeń są sformatowane zgodnie ze specyfikacją CloudEvents, np. google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Aby na przykład otrzymywać zdarzenia dotyczące użytkowników dołączających do pokoju w Google Chat, określ pokój jako zasób docelowy, a typ zdarzenia jako google.workspace.chat.membership.v1.created. Aby otrzymywać zdarzenia dotyczące dołączania użytkownika do dowolnej przestrzeni, określ użytkownika jako zasób docelowy, a typ zdarzenia jako google.workspace.chat.membership.v1.created. Więcej informacji o tym, jak działają zdarzenia, znajdziesz w artykule Struktura zdarzeń Google Workspace.

W tabeli poniżej znajdziesz informacje o tym, które typy zdarzeń są obsługiwane w przypadku subskrypcji przestrzeni i subskrypcji użytkowników. Więcej informacji o wyjątkach dotyczących tego, co wywołuje zdarzenie, znajdziesz w sekcji Ograniczenia.

Typ wydarzenia Format Dane zasobów
Subskrypcje pokoi  
Wiadomość została opublikowana.

google.workspace.chat.message.v1.created

space.message

zaktualizowanie wiadomości,

google.workspace.chat.message.v1.updated

space.message

Wiadomość zostanie usunięta.

google.workspace.chat.message.v1.deleted

space.message

Reakcja zostanie utworzona.

google.workspace.chat.reaction.v1.created

space.message.reaction

Reakcja zostanie usunięta.

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Użytkownik zostanie dodany do pokoju.

google.workspace.chat.membership.v1.created

space.membership

Użytkownik zostanie zaktualizowany w pokoju.

google.workspace.chat.membership.v1.updated

space.membership

Użytkownik zostanie usunięty z pokoju.

google.workspace.chat.membership.v1.deleted

space.membership

Pokój zostanie zaktualizowany.

google.workspace.chat.space.v1.updated

space

Pokój zostanie usunięty.

google.workspace.chat.space.v1.deleted

space

Subskrypcje użytkowników  
Użytkownik staje się członkiem pokoju.

Nie wszyscy nowi członkowie wywołują zdarzenia. Więcej informacji znajdziesz w sekcji Ograniczenia.

google.workspace.chat.membership.v1.created

space.membership

Członkostwo użytkownika w pokoju zostało zaktualizowane.

google.workspace.chat.membership.v1.updated

space.membership

Użytkownik zostanie usunięty jako bezpośredni członek pokoju.

google.workspace.chat.membership.v1.deleted

space.membership

Stan przeczytania pokoju użytkownika zostanie zaktualizowany. ( wersja zapoznawcza dla programistów)

google.workspace.chat.spaceReadState.v1.updated

spaceReadState

Stan przeczytania wątku przez użytkownika zostanie zaktualizowany. ( wersja zapoznawcza dla programistów)

google.workspace.chat.threadReadState.v1.updated

threadReadState

Dostępność użytkownika zostanie zaktualizowana.

google.workspace.chat.availability.v1.updated

user.availability

Typy zdarzeń wsadowych (tylko dane wyjściowe)

Oprócz typów zdarzeń, które subskrybujesz, aplikacja do czatu może też otrzymywać zdarzenia zbiorcze. Zdarzenie zbiorcze to zdarzenie, które reprezentuje wiele zdarzeń tego samego typu, które występują w krótkim czasie. Ładunek zdarzenia zbiorczego zawiera listę wszystkich zmienionych zasobów.

Jeśli na przykład użytkownik doda do pokoju 20 użytkowników jednocześnie, aplikacja do obsługi czatu może otrzymać zdarzenie wsadowe (google.workspace.chat.membership.v1.batchCreated). Ładunek zdarzenia zawiera listę wszystkich nowych zasobów Membership, które zostały utworzone, gdy użytkownik dodał członków do pokoju.

Otrzymujesz zdarzenie wsadowe dla każdego typu zdarzenia, które subskrybujesz, więc podczas tworzenia subskrypcji nie musisz określać zdarzeń wsadowych. Jeśli na przykład subskrybujesz nowe reakcje (google.workspace.chat.reaction.v1.created), aplikacja do czatu zostanie automatycznie skonfigurowana tak, aby otrzymywać zdarzenia reakcji zbiorczych (google.workspace.chat.reaction.v1.batchCreated).

W tabeli poniżej znajdziesz możliwe zdarzenia zbiorcze dotyczące subskrypcji:

Typ zdarzenia wsadowego Format
Opublikowano wiele wiadomości.

google.workspace.chat.message.v1.batchCreated

Zaktualizowano wiele wiadomości.

google.workspace.chat.message.v1.batchUpdated

Wiele wiadomości zostanie usuniętych.

google.workspace.chat.message.v1.batchDeleted

Utworzonych zostanie kilka reakcji.

google.workspace.chat.reaction.v1.batchCreated

Wiele reakcji zostanie usuniętych.

google.workspace.chat.reaction.v1.batchDeleted

Do subskrybowanego pokoju dodano wielu użytkowników lub subskrybujący użytkownik został dodany do wielu pokojów.

google.workspace.chat.membership.v1.batchCreated

Wiele członkostw jest aktualizowanych w subskrybowanym pokoju lub w przypadku subskrybowanego użytkownika.

google.workspace.chat.membership.v1.batchUpdated

Z subskrybowanego pokoju usunięto wielu użytkowników lub subskrybent został usunięty z wielu pokoi.

google.workspace.chat.membership.v1.batchDeleted

W pokoju jest wiele aktualizacji.

google.workspace.chat.space.v1.batchUpdated

Dla subskrybującego użytkownika aktualizowanych jest wiele stanów odczytu pokoju. ( wersja zapoznawcza dla programistów)

google.workspace.chat.spaceReadState.v1.batchUpdated

Dla subskrybującego użytkownika aktualizowanych jest wiele stanów odczytu wątków. ( wersja zapoznawcza dla programistów)

google.workspace.chat.threadReadState.v1.batchUpdated

Dane zdarzenia

W tej sekcji opisujemy dane zdarzeń i przykładowe ładunki zdarzeń w Chat.

Gdy subskrypcja Google Workspace otrzyma zdarzenie z Google Chat, pole data będzie zawierać ładunek zdarzenia. Ten ładunek zawiera informacje o zmienionym zasobie Google Workspace. Jeśli na przykład subskrybujesz wydarzenia związane z członkostwem w przestrzeni, ładunek tych zdarzeń zawiera informacje o zasobie spaces.membership, który uległ zmianie.

Dane zasobu w ładunku zdarzenia

Podczas tworzenia subskrypcji możesz określić, czy chcesz, aby ładunek zawierał szczegóły zasobu, czy tylko jego nazwę. Jeśli na przykład chcesz otrzymywać zdarzenia dotyczące członków pokoju w Google Chat, określ, które pola zasobu członkostwa chcesz otrzymywać w ładunku zdarzenia.

W tabeli poniżej znajdziesz przykłady ładunków JSON w przypadku subskrypcji pokoju na czacie spaces/AAAABBBBBB. W przypadku każdego zdarzenia, które otrzymuje subskrypcja, ładunek pojawia się w polu data zdarzenia:

Przykład Typ wydarzenia Ładunek JSON

Użytkownik publikuje w pokoju wiadomość „Hello world”.

google.workspace.chat.message.v1.created

Zawiera dane zasobów:

{
    "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"
    }
}
      

Wyklucza dane o zasobach:

{
    "message":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID"
    }
}
      
Użytkownik staje się menedżerem pokoju.

google.workspace.chat.membership.v1.updated

Zawiera dane zasobów:

{
    "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"
    }
}
      

Wyklucza dane o zasobach:

{
    "membership":
    {
        "name": "spaces/SPACE_ID/members/MEMBER_ID"
    }
}
      
Użytkownik aktualizuje opis pokoju na „Zespół sprzedaży Cymbal Labs”. google.workspace.chat.space.v1.updated

Zawiera dane zasobów:

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

Wyklucza dane o zasobach:

{
    "space":
    {
        "name": "spaces/SPACE_ID"
    }
}
      
Do pokoju dodano jednocześnie 2 użytkowników Google Chat. google.workspace.chat.membership.v1.batchCreated

Zawiera dane zasobów:

{
    "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"
          }
        }
    ]
}
      

Wyklucza dane o zasobach:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        }
    ]
}
      
Użytkownik reaguje na wiadomość emotikonem 😊. google.workspace.chat.reaction.v1.created

Zawiera dane zasobów:

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

Wyklucza dane o zasobach:

{
    "reaction":
    {
        "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
    }
}
      
Użytkownicy reagują na wiadomość za pomocą emotikonów 😊 i 😸. google.workspace.chat.reaction.v1.batchCreated

Zawiera dane zasobów:

{
    "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": "😸"
            }
          }
        }
    ]
}
      

Wyklucza dane o zasobach:

{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID"
        },
        "reaction": {
            "name": "spaces/SPACE_ID/messages/MESSAGE_ID/reactions/REACTION_ID",
        }
      }
    ]
}
      
Użytkownik otwiera nieprzeczytany pokój, co powoduje zmianę stanu odczytu pokoju. ( wersja zapoznawcza dla programistów) google.workspace.chat.spaceReadState.v1.updated

Zawiera dane zasobów:

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

Wyklucza dane o zasobach:

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState"
  }
}
      
Użytkownik odczytuje wiadomość w wątku, co powoduje aktualizację stanu odczytania wątku. ( wersja zapoznawcza dla programistów) google.workspace.chat.threadReadState.v1.updated

Zawiera dane zasobów:

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

Wyklucza dane o zasobach:

{
  "threadReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/threads/THREAD_ID/threadReadState"
  }
}
      
Użytkownik staje się dostępny w Google Chat. google.workspace.chat.availability.v1.updated

Zawiera dane zasobów:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "ACTIVE"
    }
}
      

Wyklucza dane o zasobach:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Użytkownik staje się nieaktywny w Google Chat. google.workspace.chat.availability.v1.updated

Zawiera dane zasobów:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "IDLE",
    }
}
      

Wyklucza dane o zasobach:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Użytkownik ustawia stan dostępności na Away w Google Chat. google.workspace.chat.availability.v1.updated

Zawiera dane zasobów:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "AWAY",
    }
}
      

Wyklucza dane o zasobach:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Użytkownik ustawia stan dostępności na Do not disturb w Google Chat. google.workspace.chat.availability.v1.updated

Zawiera dane zasobów:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "DO_NOT_DISTURB",
        "doNotDisturbMetadata": {
          "expirationTime": "2026-03-24T18:36:31.337Z"
        }
    }
}
      

Wyklucza dane o zasobach:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Użytkownik ustawia własny stan w Google Chat. google.workspace.chat.availability.v1.updated

Zawiera dane zasobów:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
        "state": "ACTIVE",
        "customStatus": {
          "text": "Be right back",
          "emoji": {
            "unicode": "👟"
          },
          "expireTime": "2026-03-24T18:38:05.583655Z"
        }
    }
}
      

Wyklucza dane o zasobach:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      

Ograniczenia

  • W przypadku subskrypcji użytkowników zdarzenia dotyczące nowych członków w wiadomościach bezpośrednich lub czatach grupowych bez nazwy (google.workspace.chat.membership.v1.created) są wywoływane dopiero po opublikowaniu pierwszej wiadomości.
  • Aby otrzymywać zdarzenia dotyczące członkostwa, użytkownik lub aplikacja Chat musi być bezpośrednim członkiem pokoju. Jeśli użytkownik został dodany, zaktualizowany lub usunięty z pokoju pośrednio za pomocą grupy dyskusyjnej Google, subskrypcja nie otrzyma tych zdarzeń związanych z członkostwem. Więcej informacji o członkostwie w grupach dyskusyjnych Google znajdziesz w artykule Dodawanie grupy dyskusyjnej Google do pokoju.