Praca z wydarzeniami z Google Chat

Na tej stronie wyjaśniamy, jak aplikacje Google Chat mogą odbierać zdarzenia w Google Chat i odpowiadać na nie.

Zdarzenie w Google Chat odpowiada aktywności lub zmianie w tej usłudze, na przykład nowej wiadomości w pokoju. Aplikacja do obsługi czatu może korzystać ze zdarzeń, aby zrozumieć, co się stało, i podjąć odpowiednie działania lub zareagować w istotny sposób dla użytkowników.

Oto kilka przykładów użycia zdarzeń:

  • Sprawdzaj nowe wiadomości i odpowiadaj na nie w pokoju, na przykład sprawdzaj słowa kluczowe i wyrażenia.
  • Wyślij wiadomość powitalną do użytkowników dołączających do pokoju, aby wyjaśnić wytyczne dotyczące pokoju lub udzielić wskazówek na temat efektywnego korzystania z aplikacji Google Chat.
  • Śledź i analizuj aktywność w Google Chat. aby na przykład wysyłać comiesięczny raport o nowych członkach grupy lub wiadomościach, które wzbudzają najwięcej reakcji lub odpowiedzi.
  • Komunikacja na różnych platformach komunikacyjnych Na przykład użytkownicy mogą wysyłać i odbierać wiadomości od użytkowników innej platformy do obsługi wiadomości bez opuszczania Google Chat.

Jak działają zdarzenia

Za każdym razem, gdy w Google Chat coś się stanie, zasób Google Chat API zostanie utworzony, zaktualizowany lub usunięty. Google Chat wykorzystuje zdarzenia, aby przesłać do aplikacji Google Chat informacje o typie wykonanej aktywności oraz zasobie interfejsu Chat API, którego dotyczył problem.

Przykład sposobu, w jaki wiadomość opublikowana w pokoju Google Chat wywołuje zdarzenie.
Rysunek 1. Użytkownik publikuje wiadomość w pokoju czatu, co powoduje utworzenie zasobu Message. Google Chat utworzy zdarzenie zawierające dane o nowej wiadomości.

Google Chat kategoryzuje zdarzenia według typu. Typy zdarzeń pomagają filtrować i otrzymywać tylko te typy informacji, których potrzebujesz, a także obsługiwać podobne działania w ten sam sposób.

W tabeli poniżej pokazujemy, jak aktywność w Google Chat wpływa na powiązany zasób interfejsu Chat API oraz na jaki rodzaj zdarzenia odbierana jest aplikacja Google Chat:

Aktywność Zasób interfejsu Chat API Typ zdarzenia
Użytkownik publikuje wiadomość w pokoju czatu Zostanie utworzony zasób Message. Nowa wiadomość
Użytkownik staje się menedżerem pokoju. Zaktualizowano zasób Membership. Zaktualizowane członkostwo
Użytkownik reaguje na wiadomość. Zostanie utworzony zasób Reaction. Nowa reakcja
użytkownik opuści pokój; Zasób Membership został usunięty. Usunięto członkostwo

Odbieranie zdarzeń z Google Chat

Aby otrzymywać wydarzenia, aplikacja Google Chat może:

  • Aby otrzymywać zdarzenia na bieżąco, subskrybuj zdarzenia za pomocą interfejsu Google Workspace Event API.
  • Zapytanie o ostatnie zdarzenia możesz uzyskać, wywołując interfejs Chat API.

W tabeli poniżej znajdziesz różnice i przyczyny dotyczące wysyłania zapytań i subskrybowania zdarzeń:

Subskrybuj wydarzenia Zapytanie dotyczące zdarzeń
Przykłady zastosowań
  • Przetwarzać wydarzenia i odpowiadać na nie w czasie rzeczywistym.
  • Możesz monitorować aktywność użytkowników związaną z członkostwem, aby znaleźć nowe pokoje do monitorowania.
  • Przetwarzać zdarzenia i reagować na nie okresowo lub za pomocą reguł.
  • Pobierz pominięte zdarzenia z subskrypcji (z powodu przerwy w działaniu lub nieaktywnej subskrypcji).
API Interfejs Google Workspace Events API Chat API
Źródło zdarzeń Pokoje i użytkownicy Tylko pokoje
Obsługiwane zdarzenia
  • Wiadomości
  • Wspieranie kanału
  • Reakcje
  • Miejsce

Listę obsługiwanych typów zdarzeń znajdziesz w sekcji Typy zdarzeń służące do tworzenia subskrypcji w dokumentacji interfejsu Google Workspace Event API.
  • Wiadomości
  • Wspieranie kanału
  • Reakcje
  • Miejsce

Listę obsługiwanych typów zdarzeń znajdziesz w zasobie spaceEvents w dokumentacji referencyjnej interfejsu Chat API.
Format zdarzenia Komunikat Google Cloud Pub/Sub sformatowany zgodnie ze specyfikacją CloudEvent. Więcej informacji znajdziesz w artykule Struktura zdarzeń Google Workspace. Zasób interfejsu Chat API ( spaces.spaceEvent)
Dane zdarzenia Ciąg zakodowany w standardzie Base64 z danymi zasobu lub bez nich. Przykładowe ładunki znajdziesz w sekcji Dane zdarzeń. Ładunek JSON zawierający dane zasobów. Niektóre typy zdarzeń zawierają tylko określone pola zasobów. Przykładowe ładunki znajdziesz w dokumentacji referencyjnej.

Przykład: wysyłanie zapytań o wydarzenia dotyczące członkostwa w pokoju lub ich subskrybowanie

W tym przykładzie aplikacja do obsługi czatu chce otrzymywać informacje o zmianach dotyczących użytkowników pokoju czatu. W pokoju odbywają się następujące działania związane z członkostwem:

  • Użytkownik dołącza do pokoju, co powoduje utworzenie zasobu Membership i uruchomienie nowego zdarzenia powiązanego z użytkownikiem.
  • Użytkownik staje się menedżerem pokoju, co aktualizuje jego zasób Membership i wywołuje zaktualizowane zdarzenie dołączenia.
  • Użytkownik opuszcza pokój, co powoduje usunięcie jego zasobu Membership i wywołanie zdarzenia usunięcia użytkownika.

Subskrybuj zdarzenia dla członków

Aby odbierać zdarzenia w czasie rzeczywistym, aplikacja Google Chat wywołuje metodę subscriptions.create() interfejsu Google Workspace Event API w celu subskrybowania pokoju w przypadku wszystkich typów zdarzeń związanych z członkostwem. Po utworzeniu subskrypcji aplikacja Google Chat może zacząć otrzymywać zdarzenia subskrypcji.

Aplikacja do obsługi czatu, która subskrybuje wydarzenia za pomocą interfejsu Google Workspace Event API.
Rysunek 2. Aplikacja do obsługi czatu otrzymuje zdarzenia członkostwa w ramach subskrypcji przy użyciu interfejsu Google Workspace Event API.

Na ilustracji 2 aplikacja Google Chat ma aktywną subskrypcję pokoju, dlatego otrzymuje zdarzenie przy każdej zmianie subskrypcji w tym pokoju. Aplikacja Google Chat może wtedy przetwarzać dowolne działania i odpowiadać na nie w czasie rzeczywistym, np. opublikować prywatną wiadomość powitalną dla osoby, która dołączyła do pokoju.

Więcej informacji o tworzeniu subskrypcji za pomocą interfejsu Google Workspace Event API znajdziesz w dokumentacji interfejsu Google Workspace Event API.

Zapytanie dotyczące ostatnich zdarzeń członkostwa

Zamiast otrzymywać zdarzenia subskrypcji na bieżąco, aplikacja Google Chat może wywoływać interfejs Chat API, aby wyświetlić listę ostatnich zdarzeń w pokoju, które są związane z aktywnością związaną ze wspieraniem.

Aplikacja do obsługi czatu, która wysyła zapytania o zdarzenia za pomocą interfejsu Chat API.
Rysunek 3. Aplikacja do obsługi czatu otrzymuje ostatnie zdarzenia członkostwa, wysyłając zapytania o zdarzenia w pokoju za pomocą interfejsu Chat API.

Na ilustracji 3 aplikacja do obsługi czatu wywołuje metodę spaces.spaceEvents.list() interfejsu Chat API po wystąpieniu wszystkich działań związanych z członkostwem, a następnie filtruje zapytanie pod kątem nowych, zaktualizowanych i usuniętych zdarzeń członkostwa. Interfejs Chat API zwraca listę zasobów spaceEvent, które odpowiadają poszczególnym zmianom członkostwa. Aplikacja Google Chat będzie mogła przetwarzać dane lub odpowiadać na nie na podstawie ostatniej aktywności, na przykład publikować cotygodniowe wiadomości z podsumowaniem aktywności związanej z członkostwem w pokoju w ciągu ostatnich 7 dni.

Aby dowiedzieć się, jak wysyłać zapytania o wydarzenia za pomocą interfejsu Chat API, zapoznaj się z artykułem Wyświetlanie listy zdarzeń z pokoju Google Chat.

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.