Na tej stronie opisujemy zdarzenia w Google Chat, które aplikacja Google Chat może subskrybować przy użyciu interfejsu Google Workspace Event API. Gdy określisz, jakiego typu zdarzenia potrzebujesz, utwórz subskrypcję, aby zacząć otrzymywać zdarzenia z Google Chat.
Oprócz subskrypcji zdarzeń możesz też wysyłać zapytania o zdarzenia, wywołując interfejs Chat API. Wywoływanie interfejsu Chat API umożliwia okresowe pobieranie zdarzeń lub przeglądanie zdarzeń, które mogły umknąć Twojej subskrypcji z powodu przerwy w dostępie do usługi. Więcej informacji o sposobach odbierania zdarzeń z Google Chat i odpowiadania na nie znajdziesz w sekcji Praca z wydarzeniami z Google Chat w dokumentacji tej usługi.
Obsługiwane zasoby docelowe Google Chat
Interfejs Google Workspace Event API obsługuje subskrypcje w tych celach:
- Pokoje widoczne jako zasoby
space
- Użytkownicy reprezentujący zasoby
user
interfejsu Cloud Identity API
Obsługiwane zdarzenia Google Chat
Subskrypcje Google Workspace pozwalają otrzymywać zdarzenia dotyczące następujących 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.
- zmian w pokoju, który subskrybujesz, np. zaktualizowanej nazwy lub opisu pokoju;
Typy zdarzeń, które umożliwiają tworzenie subskrypcji
Podczas tworzenia subskrypcji pole eventTypes[]
pozwala określić typy zdarzeń, które chcesz otrzymywać. Typy zdarzeń są formatowane 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 czatu, określ pokój jako zasób docelowy, a jako typ zdarzenia określ google.workspace.chat.membership.v1.created
. Aby otrzymywać zdarzenia dotyczące danego użytkownika dołączającego do dowolnego pokoju, określ go jako zasób docelowy, a jako typ zdarzenia ustaw 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 wywołujących zdarzenie znajdziesz w sekcji Ograniczenia.
Typ zdarzenia | Format | Dane zasobu | ||
---|---|---|---|---|
Subskrypcje pokoi | ||||
Wiadomość została opublikowana. |
|
|
||
Zaktualizowano wiadomość. |
|
|
||
Wiadomość została usunięta. |
|
|
||
Tworzona jest reakcja. |
|
|
||
Reakcja została usunięta. |
|
|
||
Do pokoju zostanie dodany użytkownik. |
|
|
||
Użytkownik zostanie zaktualizowany w pokoju. |
|
|
||
Użytkownik zostanie usunięty z pokoju. |
|
|
||
Pokój zostanie zaktualizowany. |
|
|
||
Pokój został usunięty. |
|
|
||
Subskrypcje użytkowników | ||||
Użytkownik staje się członkiem pokoju.
Nie wszystkie nowe osoby wywołują zdarzenia. Więcej informacji znajdziesz w sekcji Ograniczenia. |
|
|
||
Subskrypcja użytkownika w pokoju zostanie zaktualizowana. |
|
|
||
Użytkownik zostanie usunięty z pokoju jako bezpośredni użytkownik. |
|
|
Typy zdarzeń zbiorczych (tylko dane wyjściowe)
Oprócz zasubskrybowanych typów zdarzeń aplikacja Google Chat może też otrzymywać zdarzenia zbiorcze. Zdarzenie zbiorcze to zdarzenie reprezentujące wiele zdarzeń tego samego typu, które wystąpiły w krótkim czasie. Ładunek zdarzenia wsadowego 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 będzie zawierać listę wszystkich nowych zasobów Membership
, które zostały utworzone, gdy użytkownik dodał użytkowników do pokoju.
Otrzymasz zdarzenie wsadowe dla każdego subskrybowanego typu zdarzenia, więc nie musisz określać zdarzeń wsadowych podczas tworzenia subskrypcji. Jeśli na przykład zasubskrybujesz nowe reakcje (google.workspace.chat.reaction.v1.created
), aplikacja Google Chat zostanie automatycznie skonfigurowana pod kątem odbierania zdarzeń reakcji zbiorczej (google.workspace.chat.reaction.v1.batchCreated
).
W tabeli poniżej znajdziesz możliwe zdarzenia zbiorcze dotyczące subskrypcji:
Typ zdarzenia zbiorczego | Format |
---|---|
Opublikowano wiele wiadomości. |
|
Zaktualizowano wiele wiadomości. |
|
Usuniętych jest wiele wiadomości. |
|
Utworzono wiele reakcji. |
|
Wiele reakcji zostanie usuniętych. |
|
Do subskrybowanego pokoju zostanie dodanych wielu użytkowników lub użytkownik, który został dodany do kilku pokoi. |
|
Aktualizujemy wiele subskrypcji w pokoju, w którym się znajdujesz, lub dla użytkownika, który subskrybujesz. |
|
Wielu użytkowników zostało usuniętych z subskrybowanego pokoju lub użytkownik został usunięty z kilku pokoi. |
|
Pokój został zaktualizowany. |
|
Dane zdarzenia
W tej sekcji omawiamy dane zdarzeń i przykładowe ładunki dla zdarzeń w Google Chat.
Gdy subskrypcja Google Workspace otrzyma zdarzenie z Google Chat, pole data
będzie zawierać ładunek tego zdarzenia. Zawiera on informacje o zmienionym zasobie Google Workspace. Jeśli na przykład subskrybujesz zdarzenia członkostwa w pokoju, ładunek dla tych zdarzeń zawiera informacje o zmienionym zasobie spaces.membership
.
Dane zasobów w ładunku zdarzenia
Podczas tworzenia subskrypcji możesz określić, czy ładunek ma zawierać szczegóły zasobu, czy tylko jego nazwę. Jeśli na przykład chcesz otrzymywać zdarzenia dotyczące użytkowników w pokoju czatu, możesz określić pola zasobu subskrypcji, które chcesz otrzymywać w ładunku zdarzeń.
W tabeli poniżej znajdziesz przykłady ładunków JSON w przypadku subskrypcji pokoju czatu spaces/AAAABBBBBB
. W przypadku każdego odbieranego przez subskrypcję ładunku ładunek pojawia się w polu data
zdarzenia:
Przykład | Typ zdarzenia | Ładunek JSON |
---|---|---|
Użytkownik publikuje w pokoju wiadomość „Witaj świecie”. |
|
Obejmuje dane zasobów
{ "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" } } Nie zawiera danych zasobów
{ "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD" } } |
Użytkownik staje się menedżerem pokoju. |
|
Obejmuje dane zasobów
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321", "state": "JOINED", "member": { "name": "users/1234567890987654321", "type": "HUMAN" }, "createTime": "1970-01-01T00:00:00Z", "role": "ROLE_MANAGER" } } Nie zawiera danych zasobów
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } } |
Użytkownik zmienia opis pokoju na „Zespół sprzedaży Cymbal Labs”. | google.workspace.chat.space.v1.updated |
Obejmuje dane zasobów
{ "space": { "name": "spaces/AAAABBBBBB", "displayName": "Cymbal Sales", "spaceThreadingState": "THREADED_MESSAGES", "spaceType": "SPACE", "spaceDetails": { "description": "Sales team for Cymbal Labs." }, "spaceHistoryState": "HISTORY_ON" } } Nie zawiera danych zasobów
{ "space": { "name": "spaces/AAAABBBBBB" } } |
Do pokoju dodano 2 użytkowników Google Chat w tym samym czasie. | google.workspace.chat.membership.v1.batchCreated |
Obejmuje dane zasobów
{ "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" } } ] } Nie zawiera danych zasobów
{ "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/98765432123456789019" } } ] } |
Użytkownik reaguje na wiadomość przy użyciu emotikona 😩. | google.workspace.chat.reaction.v1.created |
Obejmuje dane zasobów
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222", "user": { "name": "users/1234567890987654321", "type": "HUMAN" }, "emoji": { "unicode": "😊" } } } Pomija dane zasobu
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" } } |
Użytkownicy reagują na wiadomość przy użyciu emotikonów 😩 i 😸. | google.workspace.chat.reaction.v1.batchCreated |
Obejmuje dane zasobów
{ "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": "😸" } } } ] } Pomija dane zasobu
{ "reactions": [ { "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" }, "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444", } } ] } |
Ograniczenia
-
W przypadku subskrypcji dla użytkowników zdarzenia dotyczące nowych członków na czacie lub w czatach grupowych bez nazw (
google.workspace.chat.membership.v1.created
) są wywoływane dopiero po opublikowaniu pierwszej wiadomości. - Zmiany w historii pokoju nie wyzwalają zaktualizowanych zdarzeń dotyczących pokoju (typ zdarzenia:
google.workspace.chat.spaces.v1.updated
). - Aby otrzymywać zdarzenia związane z członkostwem, użytkownik musi być bezpośrednim członkiem pokoju. Jeśli użytkownik został dodany, zaktualizowany lub usunięty pośrednio z pokoju za pomocą grupy dyskusyjnej Google, nie otrzyma tych zdarzeń członkostwa. Aby dowiedzieć się, jak działa członkostwo w Grupach dyskusyjnych Google, zobacz Dodawanie grupy dyskusyjnej Google do pokoju.
Powiązane artykuły
- Struktura zdarzeń Google Workspace
- Wybierz zakresy protokołu OAuth
- Aby otrzymywać zdarzenia Google Chat, utwórz subskrypcję.