Na tej stronie opisano zdarzenia Google Chat, do których aplikacja Google Chat może się subskrybować za pomocą interfejsu Google Workspace Events API. Gdy zdecydujesz, których typów zdarzeń potrzebujesz, utwórz subskrypcję, aby zacząć otrzymywać zdarzenia z Google Chat.
Oprócz subskrybowania zdarzeń możesz też wysyłać zapytania dotyczące zdarzeń, wywołując interfejs Chat API. Wywoływanie interfejsu API Google Chat umożliwia okresowe pobieranie zdarzeń lub nadrabianie zaległości w przypadku zdarzeń, które mogły zostać pominięte z powodu awarii. Aby dowiedzieć się, jak otrzymywać zdarzenia z Google Chat i na nie odpowiadać, zapoznaj się z artykułem Praca z wydarzeniami 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 w pokoju;
- zmiany w salach, do których się subskrybujesz, np. zaktualizowana nazwa lub opis sali;
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 API Google Workspace Events obsługuje te zasoby docelowe w Google Chat:
Zasób docelowy | Format | Ograniczenia |
---|---|---|
Spacja |
gdzie SPACE to identyfikator w
nazwie zasobu interfejsu Chat API |
Użytkownik Google Chat, który autoryzuje subskrypcję, musi być członkiem pokoju za pomocą konta Google Workspace lub Google. |
Wszystkie pokoje użytkownika |
|
Subskrypcja otrzymuje tylko wydarzenia z pokoi, w których użytkownik jest członkiem za pomocą konta Google Workspace lub konta Google. |
Użytkownik |
gdzie USER to identyfikator w
nazwie zasobu zasobu interfejsu Chat API |
Subskrypcja odbiera tylko zdarzenia dotyczące użytkownika, który autoryzował subskrypcję. Użytkownik nie może autoryzować subskrypcji w imieniu innych użytkowników. |
Typy zdarzeń do tworzenia subskrypcji
Podczas tworzenia subskrypcji możesz użyć pola eventTypes[]
, aby określić, które typy zdarzeń chcesz otrzymywać. Typy zdarzeń są formatowane zgodnie ze specyfikacją CloudEvents, np. google.workspace.APPLICATION.RESOURCE.VERSION.ACTION
.
Aby na przykład otrzymywać zdarzenia o użytkownikach dołączających do pokoju czatu, jako zasób docelowy podaj pokój, a jako typ zdarzenia –google.workspace.chat.membership.v1.created
. Aby otrzymywać zdarzenia dotyczące danego użytkownika dołączającego do dowolnej przestrzeni, jako zasób docelowy podaj użytkownika, a jako typ zdarzenia – 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 pokoju i subskrypcji użytkowników. Więcej informacji o wyjątkach dotyczących tego, co powoduje wystąpienie zdarzenia, znajdziesz w sekcji Ograniczenia.
Typ zdarzenia | Format | Dane zasobu | ||
---|---|---|---|---|
Subskrypcje pokoi | ||||
wiadomość została opublikowana, |
|
|
||
wiadomość została zaktualizowana, |
|
|
||
Wiadomość została usunięta. |
|
|
||
Tworzy reakcję. |
|
|
||
usunięcie reakcji, |
|
|
||
Użytkownik zostaje dodany do pokoju. |
|
|
||
Zaktualizowano członka pokoju. |
|
|
||
Użytkownik zostaje usunięty z pokoju. |
|
|
||
Pokój został zaktualizowany. |
|
|
||
Pokój zostanie usunięty. |
|
|
||
Subskrypcje użytkowników | ||||
Użytkownik staje się uczestnikiem pokoju.
Nie wszystkie nowe osoby wywołują zdarzenia. Więcej informacji znajdziesz w sekcji Ograniczenia. |
|
|
||
Zaktualizowano członkostwo użytkownika w pokoju. |
|
|
||
Użytkownik zostaje usunięty jako bezpośredni członek pokoju. |
|
|
Typy zdarzeń zbiorczych (tylko dane wyjściowe)
Oprócz typów zdarzeń, na które się subskrybujesz, Twoja aplikacja Google Chat 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 20 użytkowników do pokoju w tym samym czasie, Twoja aplikacja Google Chat może otrzymać zdarzenie zbiorcze (google.workspace.chat.membership.v1.batchCreated
). Ładunek zdarzenia zawiera listę wszystkich nowych zasobów google.workspace.chat.membership.v1.batchCreated
, które zostały utworzone, gdy użytkownik dodał użytkowników do pokoju.Membership
Otrzymujesz zdarzenie zbiorcze dla każdego typu zdarzenia, na które subskrybujesz, więc nie musisz określać zdarzeń zbiorczych podczas tworzenia subskrypcji. Jeśli na przykład subskrybujesz nowe reakcje (google.workspace.chat.reaction.v1.created
), Twoja aplikacja Google Chat zostanie automatycznie skonfigurowana tak, aby otrzymywać zbiorcze zdarzenia reakcji (google.workspace.chat.reaction.v1.batchCreated
).
W tabeli poniżej przedstawiono możliwe zdarzenia zbiorcze dotyczące subskrypcji:
Typ zdarzenia zbiorczego | Format |
---|---|
opublikowano wiele wiadomości, |
|
Aktualizowane są liczne wiadomości. |
|
Usuwanie wielu wiadomości. |
|
Utworzono wiele reakcji. |
|
Usunięto wiele reakcji. |
|
Do pokoju, na który została dokonana subskrypcja, dodano wielu użytkowników lub subskrybowany użytkownik został dodany do wielu pokoi. |
|
W pokoju subskrybowanym lub w przypadku subskrybowanego użytkownika aktualizowane są liczne subskrypcje. |
|
z pokoju usunięci zostali liczni użytkownicy lub subskrybent został usunięty z wielu pokoi; |
|
pokój ma wiele aktualizacji; |
|
Dane zdarzenia
W tej sekcji opisano dane zdarzeń i przykładowe ładunki zdarzeń w Google Chat.
Gdy subskrypcja Google Workspace otrzyma zdarzenie z Google Chat, pole data
będzie zawierać ładunek tego zdarzenia. Ten ładunek zawiera informacje o zmienionym zasobie Google Workspace. Jeśli na przykład subskrybujesz zdarzenia dotyczące członkostwa w pokoju, ładunek tych zdarzeń zawiera informacje o zmienionym obiekcie spaces.membership
.
Dane zasobu 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ć, które pola zasobu członkostwa chcesz otrzymywać w ładunku zdarzenia.
Poniższa tabela zawiera przykłady ładunków JSON dla subskrypcji pokoju czatu spaces/AAAABBBBBB
. W przypadku każdego zdarzenia, które subskrypcja otrzymuje, ładunek znajduje się w polu data
zdarzenia:
Przykład | Typ zdarzenia | Ładunek JSON |
---|---|---|
Użytkownik publikuje w pokoju wiadomość „Hello world”. |
|
Zawiera dane o zasobach
{ "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 o zasobach
{ "message": { "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD" } } |
Użytkownik staje się menedżerem pokoju. |
|
Zawiera dane o zasobach
{ "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 o zasobach
{ "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } } |
Użytkownik aktualizuje opis pokoju na „Zespół sprzedaży Cymbal Labs”. | google.workspace.chat.space.v1.updated |
Zawiera dane zasobu
{ "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 o zasobach
{ "space": { "name": "spaces/AAAABBBBBB" } } |
Do pokoju dodano 2 użytkowników Google Chat w tym samym czasie. | google.workspace.chat.membership.v1.batchCreated |
Zawiera dane zasobu
{ "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 o zasobach
{ "memberships": [ { "membership": { "name": "spaces/AAAABBBBBB/members/1234567890987654321" } }, { "membership": { "name": "spaces/AAAABBBBBB/members/98765432123456789019" } } ] } |
Użytkownik reaguje na wiadomość emotikonem 😊. | google.workspace.chat.reaction.v1.created |
Zawiera dane zasobu
{ "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 mogą zareagować na wiadomość za pomocą emotikonów 😊 i 😸. | google.workspace.chat.reaction.v1.batchCreated |
Zawiera dane zasobu
{ "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 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
) aktywują się dopiero po opublikowaniu pierwszej wiadomości. - Aby otrzymywać zdarzenia dotyczące członkostwa, użytkownik musi być bezpośrednim członkiem pokoju. Jeśli użytkownik został dodany, zaktualizowany lub usunięty pośrednio w pokoju za pomocą grupy dyskusyjnej Google, subskrypcja nie otrzyma tych zdarzeń dotyczących członkostwa. Aby dowiedzieć się, jak działają członkostwa 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