Subskrybowanie wydarzeń w Google Chat

Na tej stronie opisaliśmy zdarzenia w Google Chat, które aplikacja do Google Chat może subskrybować za pomocą interfejsu Google Workspace Events API. Gdy zdecydujesz, jakich typów zdarzeń potrzebujesz, utwórz subskrypcję, aby zacząć otrzymywać zdarzenia z Google Chat.

Oprócz subskrybowania zdarzeń możesz też wysyłać zapytania o zdarzenia, wywołując interfejs Google Chat API. Wywołanie interfejsu Chat API umożliwia okresowe pobieranie zdarzeń lub nadrabianie zaległości w zdarzeniach, które mogły zostać pominięte w subskrypcji z powodu przerwy w działaniu. Aby dowiedzieć się, jak odbierać zdarzenia z Google Chat i na nie odpowiadać, zapoznaj się z artykułem Praca ze zdarzeniami z Google Chat w dokumentacji Google Chat.

Obsługiwane zdarzenia w Google Chat

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

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

Aby otrzymywać zdarzenia, musisz określić zasób Google Chat, który chcesz monitorować. Jest on nazywany zasobem docelowym subskrypcji.

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

Zasób docelowy Format Ograniczenia
Spacja

//chat.googleapis.com/spaces/SPACE

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

Użytkownik Google Chat lub aplikacja do Google Chat, która autoryzuje subskrypcję, musi być członkiem pokoju za pomocą swojego konta Google Workspace lub konta Google. Obsługuje:
Wszystkie pokoje użytkownika

//chat.googleapis.com/spaces/-

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

//cloudidentity.googleapis.com/users/USER

gdzie USER to identyfikator w nazwie zasobu zasobu user interfejsu Chat API. 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żytkowników.

Klient

//admin.googleapis.com/customers/CUSTOMER

gdzie CUSTOMER to identyfikator klienta. Możesz też użyć aliasu my_customer dla własnej domeny aplikacji Google Chat.

Subskrypcja otrzymuje zdarzenia dotyczące wszystkich pokoi i użytkowników zarządzanych przez domenę klienta. Obsługuje tylko uwierzytelnianie aplikacji za zgodą administratora.

Typy zdarzeń do tworzenia subskrypcji

Podczas tworzenia subskrypcji użyj pola eventTypes[], aby określić, jakie typy zdarzeń chcesz otrzymywać. Typy zdarzeń są sformatowane zgodnie ze specyfikacją CloudEvents, np. google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Jeśli na przykład chcesz otrzymywać zdarzenia dotyczące użytkowników dołączających do pokoju czatu, 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 danego użytkownika do dowolnego pokoju, 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 pokoi i subskrypcji użytkowników. Informacje o wyjątkach dotyczących tego, co wywołuje zdarzenie, znajdziesz w sekcji Ograniczenia.

Typ zdarzenia Format Dane zasobu
Subskrypcje pokoi  
opublikowanie wiadomości,

google.workspace.chat.message.v1.created

space.message

aktualizacja wiadomości,

google.workspace.chat.message.v1.updated

space.message

usunięcie wiadomości,

google.workspace.chat.message.v1.deleted

space.message

Utworzono reakcję.

google.workspace.chat.reaction.v1.created

space.message.reaction

reakcja zostanie usunięta,

google.workspace.chat.reaction.v1.deleted

space.message.reaction

Do pokoju zostanie dodany użytkownik.

google.workspace.chat.membership.v1.created

space.membership

Użytkownik został 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 społeczności wywołują zdarzenia. Więcej informacji znajdziesz w sekcji Ograniczenia.

google.workspace.chat.membership.v1.created

space.membership

Zaktualizowano członkostwo użytkownika w pokoju.

google.workspace.chat.membership.v1.updated

space.membership

Użytkownik zostanie usunięty jako bezpośredni użytkownik pokoju.

google.workspace.chat.membership.v1.deleted

space.membership

Stan odczytu pokoju przez użytkownika został zaktualizowany.

google.workspace.chat.spaceReadState.v1.updated

spaceReadState

Stan przeczytania wątku przez użytkownika został zaktualizowany.

google.workspace.chat.threadReadState.v1.updated

threadReadState

Subskrypcje dla klientów  
Występuje zdarzenie dotyczące dowolnego pokoju, wiadomości, reakcji, subskrypcji lub stanu odczytu użytkownika w organizacji Google Workspace.

Obsługuje wszystkie typy zdarzeń wymienione w przypadku subskrypcji pokoi i użytkowników.

Zależy od typu zdarzenia (np. space, space.message, space.membership lub spaceReadState).

Typy zdarzeń zbiorczych (tylko dane wyjściowe)

Oprócz typów zdarzeń, które subskrybujesz, aplikacja Google Chat może też otrzymywać zdarzenia zbiorcze. Zdarzenie zbiorcze to zdarzenie, które reprezentuje wiele zdarzeń tego samego typu występujących 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 Google Chat może otrzymać zdarzenie zbiorcze (google.workspace.chat.membership.v1.batchCreated). Ładunek zdarzenia zawiera listę wszystkich nowych zasobów Membership, które zostały utworzone, gdy użytkownik dodał osoby do pokoju.

Zdarzenie zbiorcze otrzymujesz w przypadku każdego typu zdarzenia, które subskrybujesz, więc nie musisz określać zdarzeń zbiorczych podczas tworzenia subskrypcji. Jeśli na przykład zasubskrybujesz nowe reakcje (google.workspace.chat.reaction.v1.created), aplikacja do Google Chat zostanie automatycznie skonfigurowana do otrzymywania zbiorczych zdarzeń reakcji (google.workspace.chat.reaction.v1.batchCreated).

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

Typ zdarzenia zbiorczego Format
Opublikowano kilka wiadomości.

google.workspace.chat.message.v1.batchCreated

Zaktualizowano wiele wiadomości.

google.workspace.chat.message.v1.batchUpdated

Wiele wiadomości zostało usuniętych.

google.workspace.chat.message.v1.batchDeleted

Utworzono wiele reakcji.

google.workspace.chat.reaction.v1.batchCreated

Usunięto wiele reakcji.

google.workspace.chat.reaction.v1.batchDeleted

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

google.workspace.chat.membership.v1.batchCreated

Wiele subskrypcji zostało zaktualizowanych w subskrybowanym pokoju lub dla subskrybowanego użytkownika.

google.workspace.chat.membership.v1.batchUpdated

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

google.workspace.chat.membership.v1.batchDeleted

W pokoju jest wiele aktualizacji.

google.workspace.chat.space.v1.batchUpdated

Zaktualizowano stany odczytu wielu pokoi dla subskrybującego użytkownika.

google.workspace.chat.spaceReadState.v1.batchUpdated

Zaktualizowano stany odczytu wielu wątków dla subskrybującego użytkownika.

google.workspace.chat.threadReadState.v1.batchUpdated

Dane zdarzeń

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

Gdy Twoja subskrypcja Google Workspace otrzyma zdarzenie z Google Chat, pole data będzie zawierać ładunek zdarzenia. Ten ładunek zawiera informacje o zasobie Google Workspace, który uległ zmianie. Jeśli na przykład subskrybujesz zdarzenia związane z członkostwem w pokoju, ł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 ładunek ma zawierać szczegółowe informacje o zasobie, czy tylko jego nazwę. Jeśli na przykład chcesz otrzymywać zdarzenia dotyczące użytkowników w pokoju Google Chat, określ, które pola zasobu użytkownika mają być uwzględniane w ładunku zdarzenia.

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

Przykład Typ zdarzenia Ładunek JSON

Użytkownik publikuje w pokoju wiadomość o treści „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"
    }
}
      

Nie obejmuje danych 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"
    }
}
      

Nie obejmuje danych 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"
    }
}
      

Nie obejmuje danych 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"
          }
        }
    ]
}
      

Nie obejmuje danych o zasobach:

{
    "memberships": [
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        },
        {
          "membership": {
            "name": "spaces/SPACE_ID/members/MEMBER_ID"
          }
        }
    ]
}
      
Użytkownik reaguje na wiadomość za pomocą emotikonu 😊. 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": "😊"
        }
    }
}
      

Nie obejmuje danych 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": "😸"
            }
          }
        }
    ]
}
      

Nie obejmuje danych 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 odwiedza nieprzeczytany pokój, co powoduje zmianę stanu odczytu pokoju. 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"
  }
}
      

Nie obejmuje danych o zasobach:

{
  "spaceReadState": {
    "name": "users/USER_ID/spaces/SPACE_ID/spaceReadState"
  }
}
      
Użytkownik odczytuje wiadomość w wątku, co powoduje zmianę stanu odczytu wątku. 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"
  }
}
      

Nie obejmuje danych 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"
    }
}
      

Nie obejmuje danych 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",
    }
}
      

Nie obejmuje danych o zasobach:

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

Zawiera dane zasobów:

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

Nie obejmuje danych o zasobach:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Użytkownik ustawia swoją dostępność 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"
        }
    }
}
      

Nie obejmuje danych o zasobach:

{
    "availability":
    {
        "name": "users/USER_ID/availability",
    }
}
      
Użytkownik ustawia niestandardowy 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"
        }
    }
}
      

Nie obejmuje danych o zasobach:

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

Ograniczenia i sposoby wyświetlania

Ograniczenia ogólne

  • Aby otrzymywać zdarzenia dotyczące subskrypcji, użytkownik lub aplikacja Google Chat musi być bezpośrednim użytkownikiem pokoju. Jeśli zostali dodani, zaktualizowani lub usunięci pośrednio z pokoju za pomocą grupy dyskusyjnej Google, subskrypcja nie otrzymuje tych zdarzeń dotyczących członkostwa. Aby dowiedzieć się, jak działa członkostwo w grupach dyskusyjnych Google, przeczytaj artykuł Dodawanie grupy dyskusyjnej Google do pokoju.

Subskrypcje użytkownika

  • W przypadku subskrypcji użytkowników zdarzenia dotyczące nowych członków społeczności w czatach lub czatach grupowych bez nazwy (google.workspace.chat.membership.v1.created) są wywoływane dopiero po opublikowaniu pierwszej wiadomości.

Subskrypcje klientów

W przypadku subskrypcji klientów obowiązują te ograniczenia:

  • Organizacja Google Workspace musi mieć co najmniej 1 licencję SKU Enterprise.
  • Aplikacja Google Chat może utworzyć tylko jedną subskrypcję klienta dla danej organizacji Google Workspace. Organizacja Google Workspace może mieć łącznie do 5 subskrypcji klientów (utworzonych przez różne aplikacje do Google Chat).

W przypadku subskrypcji klientów dostarczanie zdarzeń podlega tym ogólnym regułom:

  • Zdarzenia w pokoju: dostarczane tylko wtedy, gdy zdarzenie występuje w pokoju zarządzanym przez organizację Google Workspace.
  • Zdarzenia użytkownika: są dostarczane tylko wtedy, gdy zdarzenie występuje u użytkownika należącego do Twojej organizacji Google Workspace.

Jedynym wyjątkiem od tych zasad są wydarzenia związane z subskrypcją. Twoja subskrypcja może otrzymywać zdarzenia dotyczące użytkowników zarówno z pokoi zarządzanych przez Twoją organizację, jak i z pokoi zarządzanych przez organizacje zewnętrzne, ale sposób ich dostarczania zależy od tego, która organizacja zarządza pokojem:

pokoje zarządzane przez Twoją organizację Google Workspace,

Jeśli w pokoju zarządzanym przez organizację Google Workspace nastąpi zmiana członkostwa, zostanie ona dostarczona jako zdarzenie w pokoju.

Nazwa zasobu zdarzenia dotyczącego pokoju ma ten format:

spaces/{spaceId}/spaceEvents/{spaceEventId}

Pokoje zarządzane przez organizacje zewnętrzne

Jeśli członkostwo użytkownika zarządzanego przez Twoją organizację Google Workspace zmieni się w pokoju zarządzanym przez organizację zewnętrzną (np. w pokoju zewnętrznym lub na czacie utworzonym przez użytkownika zewnętrznego), Twoja subskrypcja otrzyma to zdarzenie jako zdarzenie użytkownika.

Nazwa zasobu zdarzenia użytkownika ma taki format:

users/{userId}/userEvents/{userEventId}