Na tej stronie opisujemy zdarzenia w Google Chat, które aplikacja Google Chat może subskrybować za pomocą interfejsu Google Workspace Events API. Gdy określisz, 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 Chat API. Wywoływanie interfejsu Chat API pozwala okresowo pobierać wydarzenia i nadrabiać zaległości w wydarzeniach, które mogły umknąć Twojej subskrypcji z powodu przerwy w działaniu usługi. Więcej informacji o sposobach otrzymywania zdarzeń z Google Chat i odpowiadania na nie znajdziesz w artykule Praca ze zdarzeniami w Google Chat w dokumentacji Google Chat.
Obsługiwane zasoby docelowe Google Chat
Interfejs Google Workspace Events API obsługuje subskrypcje:
- Pokoje reprezentowane jako zasoby (
space
) - Użytkownicy reprezentowani jako zasoby
user
interfejsu Cloud Identity API
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 w pokoju.
- zmian w pokoju, który subskrybujesz, np. zaktualizowanej nazwy lub opisu pokoju;
Typy zdarzeń związane z tworzeniem subskrypcji
Podczas tworzenia subskrypcji użyj pola eventTypes[]
, aby określić, jakiego typu zdarzenia 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, wybierz ten pokój jako zasób docelowy, a typ zdarzenia google.workspace.chat.membership.v1.created
. Aby otrzymywać zdarzenia dotyczące danego użytkownika dołączającego do pokoju, określ go jako zasób docelowy i jako typ zdarzenia wybierz google.workspace.chat.membership.v1.created
. Więcej informacji o sposobie działania wydarzeń znajdziesz w artykule Struktura wydarzeń w Google Workspace.
W tabeli poniżej znajdziesz typy zdarzeń obsługiwane w przypadku subskrypcji pokoi i subskrypcji użytkowników. Więcej informacji o wyjątkach wywołujących zdarzenia znajdziesz w sekcji Ograniczenia.
Typ zdarzenia | Format | Dane zasobów | ||
---|---|---|---|---|
Subskrypcje pokoi | ||||
Wiadomość została opublikowana. |
|
|
||
Wiadomość została zaktualizowana. |
|
|
||
Wiadomość została usunięta. |
|
|
||
Tworzona jest reakcja. |
|
|
||
Reakcja zostanie usunięta. |
|
|
||
Do pokoju zostanie dodany użytkownik. |
|
|
||
Użytkownik zostanie zaktualizowany w pokoju. |
|
|
||
Użytkownik zostanie usunięty z pokoju. |
|
|
||
Pokój został zaktualizowany. |
|
|
||
Pokój został usunięty. |
|
|
||
Subskrypcje użytkowników | ||||
Użytkownik stanie się członkiem pokoju.
Nie wszyscy nowi użytkownicy wywołują zdarzenia. Więcej informacji znajdziesz w sekcji Ograniczenia. |
|
|
||
Członkostwo użytkownika w pokoju zostanie zaktualizowane. |
|
|
||
Użytkownik zostanie usunięty jako bezpośredni członek pokoju. |
|
|
Typy zdarzeń zbiorczych (tylko dane wyjściowe)
Oprócz otrzymywania typów zdarzeń, które subskrybujesz, aplikacja Google Chat może też otrzymywać zdarzenia zbiorcze. Zdarzenie zbiorcze to zdarzenie reprezentujące 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 jednocześnie 20 użytkowników, 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ł użytkowników do pokoju.
Otrzymujesz zdarzenie zbiorcze dla dowolnego typu zdarzenia, który subskrybujesz, więc nie musisz określać tego zdarzenia podczas tworzenia subskrypcji. Jeśli na przykład zasubskrybujesz nowe reakcje (google.workspace.chat.reaction.v1.created
), aplikacja Google Chat zostanie automatycznie skonfigurowana do odbierania zdarzeń reakcji zbiorczej (google.workspace.chat.reaction.v1.batchCreated
).
W tej tabeli znajdziesz możliwe zdarzenia zbiorcze w przypadku subskrypcji:
Typ zdarzenia zbiorczego | Format |
---|---|
Opublikowano wiele wiadomości. |
|
Zaktualizowano wiele wiadomości. |
|
Usunięto wiele wiadomości. |
|
Można utworzyć wiele reakcji. |
|
Usunięto wiele reakcji. |
|
Do pokoju, który subskrybujesz, zostanie dodanych wielu użytkowników lub subskrybent został dodany do większej liczby pokoi. |
|
Informacje o wielu subskrypcjach zostaną zaktualizowane w pokoju subskrybenta lub dla subskrybowanego użytkownika. |
|
Z zasubskrybowanego pokoju zostanie usuniętych wielu użytkowników lub użytkownik został usunięty z wielu pokoi. |
|
Pokój ma wiele aktualizacji. |
|
Dane zdarzenia
W tej sekcji znajdziesz 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 tego zdarzenia. Zawiera on informacje o zmienionym zasobie Google Workspace. Jeśli na przykład masz subskrypcję zdarzeń członkostwa w pokoju, ładunek dla tych zdarzeń będzie zawierał informacje o zmienionym zasobie spaces.membership
.
Dane zasobu w ładunku zdarzenia
Przy tworzeniu subskrypcji możesz określić, czy ładunek ma zawierać informacje o zasobie czy tylko nazwę zasobu. Jeśli na przykład chcesz otrzymywać zdarzenia dotyczące użytkowników w pokoju czatu, możesz określić, które pola zasobu subskrypcji chcesz otrzymywać w ładunku zdarzeń.
W tabeli poniżej znajdziesz przykłady ładunków JSON dla subskrypcji pokoju czatu spaces/AAAABBBBBB
. W przypadku każdego zdarzenia odebranego przez subskrypcję ładunek pojawia się w polu data
tego zdarzenia:
Przykład | Typ zdarzenia | Ładunek JSON |
---|---|---|
Użytkownik publikuje w pokoju wiadomość „Hello world”. |
|
Zawiera 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 uwzględnia danych zasobów
{ "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD" } } |
Użytkownik staje się menedżerem pokoju. |
|
Zawiera 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 uwzględnia danych zasobów
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } } |
Użytkownik zmieni opis pokoju na „Zespół sprzedaży w Laboratorium Cymbal”. | google.workspace.chat.space.v1.updated |
Zawiera 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 uwzględnia danych zasobów
{ "space": { "name": "spaces/AAAABBBBBB" } } |
Do pokoju jednocześnie dodano 2 użytkowników Google Chat. | google.workspace.chat.membership.v1.batchCreated |
Zawiera 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 uwzględnia danych zasobów
{ "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/98765432123456789019" } } ] } |
Użytkownik zareagował na wiadomość przy użyciu emotikona 😊. | google.workspace.chat.reaction.v1.created |
Zawiera dane zasobów
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222", "user": { "name": "users/1234567890987654321", "type": "HUMAN" }, "emoji": { "unicode": "😊" } } } Pomijanie danych zasobu
{ "reaction": { "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222" } } |
Użytkownicy reagują na wiadomość za pomocą emotikonów 😊 lub 😸. | google.workspace.chat.reaction.v1.batchCreated |
Zawiera 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": "😸" } } } ] } Pomijanie danych 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 użytkowników wydarzenia dotyczące nowych członków na czacie lub w czatach grupowych bez nazwy (
google.workspace.chat.membership.v1.created
) są wywoływane dopiero po opublikowaniu pierwszej wiadomości. - Zmiany w historii pokoju nie wywołują zaktualizowanych zdarzeń dotyczących pokoju (typ zdarzenia:
google.workspace.chat.spaces.v1.updated
). - Aby otrzymywać wydarzenia dla członków, użytkownik musi być bezpośrednim członkiem pokoju. Jeśli użytkownik został dodany, zaktualizowany lub usunięty pośrednio do pokoju za pomocą grupy dyskusyjnej Google, subskrypcja nie otrzyma tych zdarzeń członkostwa. Aby dowiedzieć się, jak działa członkostwo w Grupach dyskusyjnych Google, przeczytaj artykuł Dodawanie grupy dyskusyjnej Google do pokoju.
Powiązane artykuły
- Struktura zdarzeń Google Workspace
- Wybieranie zakresów protokołu OAuth
- Utwórz subskrypcję, aby otrzymywać zdarzenia z Google Chat