Wybieranie architektury aplikacji Google Chat

Na tej stronie opisujemy typowe architekturze usług stosowane do tworzenia aplikacji Google Chat. Jeśli masz już aplikację, którą chcesz zintegrować z Google Chat, możesz ją wykorzystać lub dostosować. Jeśli tworzysz nową aplikację do obsługi czatu, na tej stronie znajdziesz podobne informacje na kilka różnych sposobów, aby pomóc Ci wybrać architekturę odpowiednią do Twojego zastosowania:

Przegląd według funkcji i możliwości

W tabeli poniżej przedstawiamy najważniejsze funkcje i możliwości aplikacji Google Chat oraz zalecany styl architektury usług (). W niektórych przypadkach z tymi funkcjami można opracować inny styl architektury, ale nie sprawdza się on w takim przypadku jak inne style ().

Funkcje i możliwości

Usługa internetowa lub HTTP

Pub/Sub

Webhooki

Google Apps Script

AppSheet

Dialogflow

Skrypt

Docelowi odbiorcy

Twoja drużyna

Twoja organizacja

Dostęp publiczny

Interaktywność użytkownika

Korzystaj z przetwarzania języka naturalnego

Wzorce komunikatów

Wysyłanie i odbieranie wiadomości synchronicznych

Wysyłaj i odbieraj wiadomości synchroniczne oraz wysyłaj wiadomości asynchroniczne

Wysyłaj tylko wiadomości asynchroniczne

Wysyłanie wiadomości z systemu zewnętrznego do jednego pokoju czatu

Dostęp do innych usług i systemów

Integracja z innymi usługami Google

Komunikacja za zaporą sieciową

Subskrybowanie wydarzeń Google Workspace

Style kodowania i wdrażania

Programowanie bez kodu

Programowanie korzystające z pisania dużych ilości kodu

Programowanie w wybranym języku programowania

Uproszczone DevOps

Kompletne zarządzanie DevOps i CI/CD

Style architektury usługi

W tej sekcji opisujemy niektóre typowe metody architektoniczne stosowane do tworzenia aplikacji do obsługi czatu.

Usługa internetowa lub HTTP

Najczęściej wdrożoną architekturą jest usługa internetowa lub HTTP, ponieważ daje ona deweloperom największą elastyczność w tworzeniu publicznych aplikacji Google Chat. Ta architektura jest zalecana w przypadku tych przypadków użycia:

  • Aplikacja Google Chat jest wdrożona publicznie w Google Workspace Marketplace.
  • Aplikacja Google Chat może wysyłać i odbierać wszystkie wzorce komunikacji: wysyłać i odbierać wiadomości synchroniczne, asynchroniczne i wysyłać wiadomości z systemu zewnętrznego.
  • Aplikacja Google Chat jest napisana w każdym języku programowania.
  • Aplikacja do obsługi czatu wymaga pełnego zarządzania DevOps i CI/CD.
  • Aplikacja Google Chat jest wdrożona w chmurze lub na serwerach lokalnych.

W tym projekcie konfigurujesz Google Chat w celu integracji z usługą zdalną przy użyciu protokołu HTTP, jak pokazano na tym diagramie:

Architektura aplikacji do obsługi czatu korzystającej z usługi internetowej na serwerze lokalnym.

Na poprzednim diagramie użytkownik korzystający z aplikacji do obsługi czatu HTTP ma następujące informacje:

  1. użytkownik wyśle wiadomość z pokoju czatu do aplikacji Google Chat.
  2. Żądanie HTTP jest wysyłane do serwera WWW, który działa w chmurze lub w systemie lokalnym, zawierającym logikę aplikacji Google Chat.
  3. Opcjonalnie logika aplikacji do obsługi czatu może wchodzić w interakcje z usługami innych firm, takimi jak system zarządzania projektami lub narzędzie do obsługi zgłoszeń.
  4. Serwer WWW wysyła odpowiedź HTTP do usługi aplikacji Google Chat w Google Chat.
  5. Odpowiedź jest wyświetlana użytkownikowi.
  6. Opcjonalnie aplikacja do obsługi czatu może wywoływać interfejs Chat API, aby asynchronicznie publikować wiadomości lub wykonywać inne operacje.

Ta architektura zapewnia elastyczność w korzystaniu z istniejących bibliotek i komponentów, które już istnieją w Twoim systemie, ponieważ te aplikacje do obsługi czatu można projektować za pomocą różnych języków programowania. Istnieją różne sposoby wdrożenia tej architektury. W Google Cloud możesz korzystać z Cloud Functions, Cloud Run i App Engine. Więcej informacji znajdziesz w artykule Tworzenie aplikacji Google Chat przy użyciu Cloud Functions.

Pub/Sub

Jeśli aplikacja Google Chat jest zaimplementowana za zaporą sieciową, Google Chat nie może wykonywać jej wywołań HTTP. Jednym ze sposobów jest Pub/Sub w celu umożliwienia implementacji aplikacji Google Chat w celu subskrybowania tematu zawierającego wiadomości z tej usługi. Pub/Sub to asynchroniczna usługa przesyłania wiadomości, która oddziela usługi generujące wiadomości z usług przetwarzających te wiadomości. Ta architektura jest zalecana w przypadku tych przypadków użycia:

  • Aplikacja Google Chat działa za zaporą sieciową.
  • Aplikacja Google Chat odbiera zdarzenia dotyczące pokoju czatu.
  • Aplikacja Google Chat jest wdrożona w organizacji.
  • Aplikacja Google Chat może wysyłać i odbierać synchroniczne wiadomości, a wiadomości asynchroniczne.
  • Aplikacja Google Chat jest napisana w każdym języku programowania.
  • Aplikacja do obsługi czatu wymaga pełnego zarządzania DevOps i CI/CD.

Ten diagram przedstawia architekturę aplikacji do obsługi czatu utworzonej w Pub/Sub:

Architektura aplikacji do obsługi czatu zaimplementowana za pomocą Pub/Sub.

Na poprzednim diagramie użytkownik korzystający z aplikacji do obsługi czatu Pub/Sub ma następujący przepływ informacji:

  1. Użytkownik wyśle wiadomość w Google Chat do aplikacji Google Chat na czacie lub w pokoju czatu albo wystąpi wydarzenie w pokoju czatu, którego aplikacja Google Chat ma aktywną subskrypcję.

  2. Google Chat wysyła wiadomość do tematu Pub/Sub.

  3. Serwer aplikacji (działający w chmurze lub lokalnie) zawierający logikę aplikacji do obsługi czatu subskrybuje temat Pub/Sub, aby odbierać wiadomość przez zaporę sieciową.

  4. Opcjonalnie aplikacja do obsługi czatu może wywoływać interfejs Chat API, aby asynchronicznie publikować wiadomości lub wykonywać inne operacje.

Na początek przeczytaj artykuł Używanie Pub/Sub jako punktu końcowego aplikacji do obsługi czatu.

Webhooki

Możesz utworzyć aplikację Google Chat, która będzie mogła wysyłać wiadomości tylko do określonego pokoju czatu przy użyciu wywołań adresu URL webhooka Google Chat. Ta architektura jest zalecana dla tych przypadków użycia:

  • Aplikacja Google Chat jest wdrożona dla Twojego zespołu.
  • Aplikacja Google Chat wysyła wiadomości z systemu zewnętrznego do jednego pokoju czatu.

Przy tej architekturze aplikacja do obsługi czatu jest ograniczona do konkretnego pokoju czatu i nie pozwala na interakcję z użytkownikiem, co pokazuje ten schemat:

Architektura przychodzących webhooków do wysyłania wiadomości asynchronicznych do Google Chat.

Na poprzednim diagramie aplikacja do obsługi czatu zawiera następujący przepływ informacji:

  1. Logika aplikacji do obsługi czatu otrzymuje informacje z usług zewnętrznych, takich jak system zarządzania projektami lub narzędzie do obsługi zgłoszeń.
  2. Logika aplikacji do obsługi czatu jest hostowana w chmurze lub systemie lokalnym, który może wysyłać wiadomości za pomocą adresu URL webhooka do określonego pokoju czatu.
  3. Użytkownicy mogą otrzymywać wiadomości z aplikacji Google Chat w tym konkretnym pokoju, ale nie mogą korzystać z aplikacji Google Chat.

Tego typu aplikacji do obsługi czatu nie można udostępniać w innych pokojach czatu ani innym zespołom ani publikować w Google Workspace Marketplace. Przychodzące webhooki są zalecane w przypadku aplikacji Google Chat do zgłaszania alertów i stanu użytkowników oraz do tworzenia prototypów niektórych aplikacji Google Chat.

Więcej informacji znajdziesz w artykule Wysyłanie wiadomości do Google Chat za pomocą webhooków.

Google Apps Script

Logikę aplikacji do obsługi czatu możesz utworzyć całkowicie w JavaScript. Google Apps Script to platforma programistyczna, która nie wymaga pisania dużych ilości kodu. Apps Script obsługuje przepływ autoryzacji i tokeny OAuth 2.0 na potrzeby uwierzytelniania użytkowników. Za pomocą Apps Script możesz tworzyć publiczne aplikacje do obsługi czatu, ale nie jest to zalecane ze względu na dzienne limity.

Ta architektura jest zalecana dla tych przypadków użycia:

  • Aplikacja Google Chat jest wdrożona dla Twojego zespołu lub organizacji.
  • Aplikacja Google Chat może wysyłać i odbierać wszystkie wzorce komunikacji: wysyłać i odbierać wiadomości synchroniczne, asynchroniczne i wysyłać wiadomości z systemu zewnętrznego.
  • Aplikacja Google Chat wymaga uproszczonego zarządzania DevOps.

Ta architektura jest przydatna w przypadku aplikacji do obsługi czatu, które integrują się też z innymi usługami Google Workspace i Google, takimi jak Arkusze, Prezentacje, Kalendarz Google, Dysk Google, Mapy Google i YouTube, jak widać na tym diagramie:

Architektura aplikacji do obsługi czatu zaimplementowana za pomocą Apps Script.

Na poprzednim diagramie użytkownik korzystający z aplikacji do obsługi czatu Google Apps Script uzyskuje następujące informacje:

  1. Użytkownik wysyła wiadomość do aplikacji Google Chat na czacie lub w pokoju czatu.
  2. Wiadomość zostanie odebrana przez logikę aplikacji do obsługi czatu zaimplementowaną w języku Apps Script, która znajduje się w Google Cloud.
  3. Opcjonalnie logika aplikacji do obsługi czatu może zostać zintegrowana z usługami Google Workspace, takimi jak Kalendarz lub Arkusze, czy innymi usługami Google, takimi jak Mapy Google czy YouTube.
  4. Logika aplikacji Google Chat wysyła odpowiedź do usługi aplikacji Google Chat w Google Chat.
  5. Odpowiedź jest wyświetlana użytkownikowi.

Aby rozpocząć, przeczytaj artykuł Tworzenie aplikacji do obsługi czatu przy użyciu Apps Script.

AppSheet

Udostępnianą w domenie aplikację do obsługi czatu możesz utworzyć bez użycia kodu za pomocą AppSheet. Możesz uprościć proces programowania, korzystając z trybu konfiguracji automatycznej i następujących szablonów, aby utworzyć typowe działania w aplikacji Google Chat. Jednak niektóre funkcje aplikacji internetowej AppSheet są niedostępne w aplikacjach Google Chat.

Ta architektura jest zalecana dla tych przypadków użycia:

  • Aplikacja Google Chat jest wdrożona dla Ciebie i Twojego zespołu.
  • Aplikacja Google Chat może wysyłać i odbierać synchroniczne wiadomości, a wiadomości asynchroniczne.
  • Aplikacja Google Chat wymaga uproszczonego zarządzania DevOps.

Poniższy diagram przedstawia architekturę aplikacji do obsługi czatu utworzonej za pomocą AppSheet:

Architektura aplikacji do obsługi czatu zaimplementowana za pomocą AppSheet.

Na poprzednim diagramie użytkownik korzystający z aplikacji AppSheet Chat ma następujący przepływ informacji:

  1. Użytkownik wysyła wiadomość w Google Chat do aplikacji Google Chat na czacie lub w pokoju czatu.
  2. Komunikat jest odbierany przez logikę aplikacji do obsługi czatu zaimplementowaną w AppSheet, która znajduje się w Google Cloud.
  3. Opcjonalnie logika aplikacji do obsługi czatu może zostać zintegrowana z usługami Google Workspace, takimi jak Apps Script czy Arkusze Google.
  4. Logika aplikacji Google Chat wysyła odpowiedź do usługi aplikacji Google Chat w Google Chat.
  5. Odpowiedź jest wyświetlana użytkownikowi.

Więcej informacji znajdziesz w artykule Tworzenie aplikacji do obsługi czatu za pomocą AppSheet.

Dialogflow

Aplikację do obsługi czatu możesz utworzyć za pomocą Dialogflow – platformy językowej do obsługi automatycznych rozmów i odpowiedzi dynamicznych. Ta architektura jest zalecana dla tych przypadków użycia:

  • Aplikacja Google Chat może wysyłać i odbierać wiadomości synchroniczne.
  • Aplikacja Google Chat używa przetwarzania języka naturalnego do odpowiadania użytkownikom i wchodzenia z nimi w interakcję.

Poniższy diagram przedstawia architekturę aplikacji do obsługi czatu utworzonej za pomocą Dialogflow:

Architektura aplikacji do obsługi czatu zaimplementowana przy użyciu Dialogflow.

Na poprzednim diagramie użytkownik korzystający z aplikacji Dialogflow Chat ma następujące informacje:

  1. Użytkownik wysyła wiadomość w Google Chat do aplikacji Google Chat na czacie lub w pokoju czatu.
  2. Wirtualny agent Dialogflow, który działa w Google Cloud, odbiera i przetwarza wiadomość, aby wygenerować odpowiedź.
  3. Opcjonalnie logika aplikacji do obsługi czatu może wchodzić w interakcje z usługami innych firm, takimi jak system zarządzania projektami lub narzędzie do obsługi zgłoszeń.
  4. Agent Dialogflow wysyła odpowiedź do usługi aplikacji Google Chat w Google Chat.
  5. Odpowiedź jest wyświetlana użytkownikowi.

Aby rozpocząć, zapoznaj się z informacjami na temat integracji z czatem Dialogflow ES lub integracji z czatem Dialogflow CX.

Aplikacja lub skrypt wiersza poleceń

Możesz utworzyć aplikację wiersza poleceń lub skrypt, który będzie wysyłać wiadomości do Google Chat lub wykonywać inne operacje, takie jak tworzenie pokoju czy zarządzanie użytkownikami pokoju. Nie pozwala to użytkownikom na bezpośrednie wywoływanie aplikacji Google Chat ani odpowiadanie na nią w Google Chat. Ta architektura jest zalecana w przypadku tych przypadków użycia:

  • Aplikacja Google Chat jest napisana w każdym języku programowania.
  • Aplikacja Google Chat może wysyłać tylko wiadomości asynchroniczne.

Ten schemat przedstawia architekturę:

Architektura aplikacji do obsługi czatu zaimplementowana za pomocą aplikacji wiersza poleceń lub skryptu.

Na poprzednim diagramie aplikacja do obsługi czatu prezentuje taki przepływ informacji:

  1. Aplikacja do obsługi czatu wywołuje interfejs Chat API, aby wysłać wiadomość lub wykonać inną operację.
  2. Czat wykona żądaną operację.
  3. Opcjonalnie aplikacja do obsługi czatu wydrukuje potwierdzenie w interfejsie wiersza poleceń.

Implementacja logiki aplikacji do obsługi czatu

Google Chat nie ogranicza sposobu implementacji logiki aplikacji Google Chat. Możesz utworzyć parser poleceń o stałej składni, korzystać z zaawansowanych bibliotek lub usług przetwarzania języka AI i języków, subskrybować zdarzenia i reagować na nie lub cokolwiek innego odpowiedniego dla Twoich celów.

Obsługa interakcji użytkowników

Aplikacja do obsługi czatu może odbierać interakcje użytkowników i odpowiadać na nie na wiele sposobów. Interakcja użytkownika to działanie, które podejmuje, aby wywołać aplikację do obsługi czatu lub z niej skorzystać.

Parser poleceń

Aplikacje do obsługi czatu oparte na poleceniach sprawdzają ładunek zdarzeń interakcji z aplikacją Google Chat i wyodrębniają z nich polecenia i parametry. Przykład: Konfigurowanie poleceń po ukośniku w celu interakcji z użytkownikami Google Chat.

Innym sposobem jest tokenizacja wiadomości, wyodrębnienie polecenia, a następnie odwołanie do słownika mapuje polecenia na funkcje obsługi poszczególnych poleceń.

Interfejs oparty na oknach

Aplikacje oparte na oknach reagują na zdarzenia interakcji z aplikacją Google Chat, wyświetlając okna oparte na kartach, w których użytkownik może korzystać z aplikacji Google Chat, np. wypełniać formularze lub wysyłać żądania wykonania określonych działań.

Za każdym razem, gdy użytkownik wykonuje działanie w oknie, do aplikacji Google Chat jest wysyłane nowe zdarzenie interakcji, które może odpowiedzieć, aktualizując okno lub wysyłając wiadomość.

Przetwarzanie języka naturalnego

Wiele implementacji aplikacji do obsługi czatu wykorzystuje przetwarzanie języka naturalnego (NLP) w celu określenia, o co pyta użytkownik. Jest wiele sposobów implementacji NLP, a Ty możesz je wdrożyć w dowolny sposób.

Możesz użyć NLP w implementacji aplikacji do obsługi czatu za pomocą integracji Dialogflow ES lub integracji Dialogflow CX Chat, która umożliwia tworzenie agentów wirtualnych dla zautomatyzowanych rozmów i odpowiedzi dynamicznych.

Proaktywne wysyłanie próśb do Google Chat

Aplikacje do obsługi czatu mogą też wysyłać do Google Chat wiadomości lub inne prośby, które nie są aktywowane przez bezpośrednie interakcje użytkownika w tej usłudze. Zamiast tego aplikacje do obsługi czatu mogą być wywoływane (np. przez aplikacje innych firm lub przy użyciu wywołania wiersza poleceń przez użytkownika), ale użytkownicy nie mogą korzystać z tych aplikacji do obsługi czatu bezpośrednio w Google Chat.

Nieinteraktywne aplikacje do obsługi czatu używają interfejsu Chat API do wysyłania wiadomości i innych rodzajów żądań do Google Chat.

Wzorce rozmów

Zastanów się, jak Twoja aplikacja do obsługi czatu ma działać z użytkownikami. W poniższych sekcjach opisano wzorce rozmów, które mogą być stosowane w Twojej aplikacji do obsługi czatu.

Połączenia i odpowiedź (synchronizacja)

W synchronicznym wzorcu wywołań i odpowiedzi aplikacja Google Chat odpowiada na wiadomości użytkowników jeden do jednego. Jedna wiadomość do aplikacji Google Chat przez użytkownika daje 1 odpowiedź z aplikacji Google Chat, jak na tym diagramie:

Architektura wiadomości synchronicznej.

Na poprzednim diagramie użytkownik korzystający z aplikacji Google Chat ma następujący przepływ informacji:

  1. Użytkownik wysyła synchroniczną wiadomość do aplikacji Google Chat, na przykład „Jakie mam następne spotkanie?”.
  2. Aplikacja Google Chat wysyła do użytkownika synchroniczną wiadomość, np. „Dr Silva o 2:30”.

W przypadku tego typu wzorca rozmowy można wdrożyć architekturę aplikacji do obsługi czatu przy użyciu usługi internetowej, Pub/Sub, Apps Script, AppSheet lub Dialogflow.

Wiele odpowiedzi (asynchroniczne)

Wzorzec wielu odpowiedzi może zawierać wiadomości synchroniczne i asynchroniczne. Ten wzorzec charakteryzuje się dwukierunkową komunikacją między użytkownikami a aplikacją Google Chat, przy czym aplikacja Google Chat generuje dowolną liczbę dodatkowych wiadomości, co pokazuje ten schemat:

Architektura wiadomości asynchronicznego.

Na poprzednim diagramie użytkownik korzystający z aplikacji Google Chat ma następujący przepływ informacji:

  1. Użytkownik wysyła do aplikacji Google Chat synchroniczną wiadomość, na przykład „Monitoruj ruch”.
  2. Aplikacja Google Chat wysyła do użytkownika synchroniczną wiadomość, aby potwierdzić żądanie – na przykład „Monitorowanie włączone”.
  3. Później aplikacja Google Chat wysyła do użytkownika co najmniej 1 wiadomość asynchroniczną, wywołując interfejs API REST, na przykład „New traffic” (Nowy ruch).
  4. Użytkownik wysyła do aplikacji Google Chat dodatkową wiadomość synchroniczną, na przykład „Ignoruj ruch”.
  5. Aplikacja Google Chat wysyła do użytkownika synchroniczną wiadomość, aby potwierdzić żądanie – na przykład „Monitorowanie wyłączone”.

W przypadku tego typu wzorca konwersacyjnego możesz wdrożyć architekturę aplikacji Google Chat za pomocą usługi internetowej, Pub/Sub, Apps Script lub AppSheet.

Subskrybowanie zdarzeń (asynchroniczne)

Zgodnie z asynchronicznym wzorcem opartym na zdarzeniach aplikacja do obsługi czatu subskrybuje zdarzenia za pomocą interfejsu Google Workspace Events API. Aplikacje do obsługi czatu oparte na zdarzeniach badają ładunek zdarzeń subskrypcji Google Chat i odpowiadają zgodnie z typem zdarzenia. Gdy w pokoju czatu wystąpi zdarzenie, którego aplikacja do obsługi czatu ma aktywną subskrypcję, Google Chat wysyła to zdarzenie do aplikacji Google Chat. Aplikacja Google Chat może następnie opcjonalnie wygenerować dowolną liczbę odpowiedzi asynchronicznych, które będzie wysyłać z powrotem do Google Chat za pomocą interfejsu Chat API.

Możesz używać tego typu logiki do aktualizowania systemów zewnętrznych, takich jak system zarządzania zgłoszeniami, lub asynchronicznie wysyłać wiadomości do pokoju czatu, na przykład wysyłając wiadomość powitalną, gdy nowy użytkownik dołączy do pokoju czatu.

Ten diagram przedstawia wzorzec rozmowy oparty na zdarzeniach:

Architektura wiadomości opartej na zdarzeniach.

Na poprzednim diagramie interakcja między Google Chat a aplikacją Google Chat obejmuje taki przepływ informacji:

  1. Aplikacja Google Chat subskrybuje pokój w Google Chat.
  2. Zmian w pokoju, w którym aplikacja Google Chat subskrybuje.
  3. Aplikacja do obsługi czatu wysyła zdarzenie w temacie w Pub/Sub, które pełni funkcję punktu końcowego powiadomień związanych z subskrypcją. Zdarzenie zawiera informacje o zmianach w zasobie.
  4. Aplikacja do obsługi czatu przetwarza wiadomość Pub/Sub, która zawiera zdarzenie, i w razie potrzeby wykona odpowiednie działanie.

W przypadku tego typu wzorca konwersacyjnego możesz wdrożyć architekturę aplikacji Google Chat przy użyciu Pub/Sub.

Wiadomość jednokierunkowa z aplikacji Google Chat

Jednokierunkowa wiadomość z wzorca aplikacji do obsługi czatu umożliwia aplikacji Google Chat wysyłanie asynchronicznych wiadomości do pokoju czatu, ale nie pozwala użytkownikom na bezpośrednią interakcję z aplikacją Google Chat. Ten wzorzec nie jest trybem konwersacyjnym ani interaktywnym, ale może być przydatny np. w przypadku zgłaszania alarmów, co pokazuje ten schemat:

Architektura wiadomości jednokierunkowej.

Na poprzednim diagramie użytkownik znajdujący się w tym samym pokoju co aplikacja Google Chat ma następujący przepływ informacji:

  • Aplikacja Google Chat wysyła do użytkownika asynchroniczną wiadomość, wywołując interfejs Chat API lub publikując na URL webhooka – na przykład „Alert o przepełnieniu kolejki”.
  • Opcjonalnie aplikacja Google Chat wysyła dodatkowe wiadomości asynchroniczne.

W przypadku tego typu wzorca rozmowy można wdrożyć architekturę aplikacji Google Chat za pomocą usługi internetowej, webhooka, Apps Script, AppSheet, aplikacji wiersza poleceń lub skryptu.

Wiadomość jednokierunkowa do aplikacji Google Chat

Jednokierunkowa wiadomość do wzorca aplikacji do obsługi czatu umożliwia użytkownikowi wysłanie wiadomości do aplikacji Google Chat bez odpowiadania przez tę aplikację podczas przetwarzania żądania. Taka architektura jest technicznie możliwa, ale pogarsza komfort użytkowników i zdecydowanie odradzamy stosowanie takich wzorców.