Wybieranie architektury aplikacji Google Chat

Na tej stronie opisujemy typowe architektury usług używane do tworzenia aplikacji Google Chat. Jeśli masz już aplikację, którą chcesz zintegrować z Google Chat, możesz użyć lub dostosować istniejącą implementację. Jeśli tworzysz nową aplikację do obsługi czatu, ta strona zawiera 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 znajdziesz najważniejsze funkcje i możliwości aplikacji Google Chat oraz zalecany styl architektury usługi (). W niektórych przypadkach można opracować inny styl architektury z tymi funkcjami, 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

Publiczność

Interakcja użytkownika

Użyj przetwarzania języka naturalnego

Wzorce komunikacji

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 użycia kodu

Programowanie, które nie wymagają 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 omawiamy najpopularniejsze metody architektury stosowane do tworzenia aplikacji do obsługi czatu.

Usługa internetowa lub HTTP

Najczęściej wdrażaną architekturą jest usługa internetowa lub HTTP, ponieważ zapewnia deweloperom największą elastyczność tworzenia publicznych aplikacji Google Chat. Ta architektura jest zalecana w przypadku tych zastosowań:

  • 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 oraz wysyłać wiadomości z systemu zewnętrznego.
  • Aplikacja Google Chat została napisana w dowolnym języku programowania.
  • Aplikacja do obsługi czatu wymaga pełnego zarządzania DevOps i CI/CD.
  • Aplikacja do obsługi czatu jest wdrożona na serwerach w chmurze lub lokalnie.

W tym projekcie skonfigurujesz Google Chat do integracji z usługą zdalną przez 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 przekazuje takie informacje:

  1. użytkownik wysyła wiadomość z pokoju czatu do aplikacji Google Chat,
  2. Żądanie HTTP jest wysyłane do serwera WWW, który działa w chmurze lub systemie lokalnym, zawierającym logikę aplikacji Google Chat.
  3. Opcjonalnie logika aplikacji Google Chat może wchodzić w interakcje z usługami innych firm, takimi jak system zarządzania projektami czy narzędzie do zgłaszania zgłoszeń.
  4. Serwer WWW wysyła odpowiedź HTTP z powrotem 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 pozwala korzystać z istniejących bibliotek i komponentów, które już istnieją w Twoim systemie, ponieważ te aplikacje do obsługi czatu można projektować w różnych językach programowania. Tę architekturę można wdrożyć na różne sposoby. W Google Cloud możesz używać Cloud Functions, Cloud Run i App Engine. Pierwsze kroki znajdziesz w artykule o tworzeniu aplikacji Google Chat za pomocą Cloud Functions.

Pub/Sub

Jeśli aplikacja Google Chat jest zaimplementowana za zaporą sieciową, nie może ona wykonywać wywołań HTTP. Jednym ze sposobów jest skorzystanie z Pub/Sub w celu zasubskrybowania przez wdrożenie aplikacji Google Chat 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 od usług przetwarzających te wiadomości. Ta architektura jest zalecana w przypadku tych zastosowań:

  • Aplikacja Google Chat jest zbudowana 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ć wiadomości synchroniczne, a także wysyłać wiadomości asynchroniczne.
  • Aplikacja Google Chat została napisana w dowolnym języku programowania.
  • Aplikacja do obsługi czatu wymaga pełnego zarządzania DevOps i CI/CD.

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

Architektura aplikacji do obsługi czatu wdrożonej w Pub/Sub.

Na poprzednim diagramie użytkownik korzystający z aplikacji do obsługi czatu Pub/Sub otrzymuje następujące informacje:

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

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

  3. Serwer aplikacji, który jest systemem w chmurze lub lokalnym i zawiera logikę aplikacji Google Chat, 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.

Zacznij od zapoznania się z informacjami o używaniu 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, używając połączeń z adresem URL webhookaGoogle Chat. Ta architektura jest zalecana w przypadku tych zastosowań:

  • 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.

W ramach tej architektury aplikacja Google Chat jest ograniczona do określonego pokoju czatu i nie pozwala na interakcję z użytkownikami, 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 Google Chat otrzymuje informacje z usług zewnętrznych, takich jak system zarządzania projektami czy narzędzie do zgłaszania zgłoszeń.
  2. Logika aplikacji Google Chat jest hostowana w chmurze lub w systemie lokalnym, który może wysyłać wiadomości przy użyciu adresu URL webhooka do określonego pokoju czatu.
  3. Użytkownicy mogą odbierać wiadomości z aplikacji Google Chat w tym konkretnym pokoju, ale nie mogą korzystać z aplikacji Google Chat.

Aplikacji tego typu 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 oraz na potrzeby niektórych typów prototypów 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ć w całości w JavaScript. Google Apps Script to platforma programistyczna, która nie wymaga pisania dużych ilości kodu. Apps Script obsługuje proces autoryzacji i tokeny OAuth 2.0 na potrzeby uwierzytelniania użytkowników. Za pomocą Apps Script możesz tworzyć publiczne aplikacje Google Chat, ale nie jest to zalecane ze względu na dzienne limity.

Ta architektura jest zalecana w przypadku tych zastosowań:

  • Aplikacja Google Chat jest wdrożona w zespole lub organizacji.
  • Aplikacja Google Chat może wysyłać i odbierać wszystkie wzorce komunikacji: wysyłać i odbierać wiadomości synchroniczne, asynchroniczne oraz wysyłać wiadomości z systemu zewnętrznego.
  • Aplikacja do obsługi czatu wymaga uproszczonego zarządzania DevOps.

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

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

Na poprzednim diagramie użytkownik korzystający z aplikacji do obsługi czatu Apps Script otrzymuje 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 mechanizm aplikacji do obsługi czatu wdrożoną w Apps Script, który działa w Google Cloud.
  3. Opcjonalnie logika aplikacji Google Chat może zostać zintegrowana z usługami Google Workspace, takimi jak Kalendarz czy Arkusze, oraz innymi usługami Google, takimi jak Mapy Google czy YouTube.
  4. Logika aplikacji Google Chat wysyła odpowiedź z powrotem do tej usługi.
  5. Odpowiedź jest wyświetlana użytkownikowi.

Pierwsze kroki znajdziesz w artykule o tworzeniu aplikacji do obsługi czatu przy użyciu Apps Script.

AppSheet

Udostępnianą w domenie aplikację do obsługi czatu możesz utworzyć bez kodu za pomocą AppSheet. Możesz uprościć proces programowania, korzystając z trybu konfiguracji automatycznej i poniższych szablonów do tworzenia typowych działań w aplikacji Google Chat. Jednak niektóre funkcje aplikacji internetowej AppSheet są niedostępne w aplikacjach Google Chat.

Ta architektura jest zalecana w przypadku tych zastosowań:

  • Aplikacja Google Chat jest wdrożona dla Ciebie i Twojego zespołu.
  • Aplikacja Google Chat może wysyłać i odbierać wiadomości synchroniczne, a także wysyłać wiadomości asynchroniczne.
  • Aplikacja do obsługi czatu 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 zaimplementowanej za pomocą AppSheet.

Na poprzednim diagramie użytkownik, który korzysta z aplikacji AppSheet, otrzymuje następujące informacje:

  1. Użytkownik wysyła wiadomość w Google Chat do aplikacji Google Chat na czacie lub w pokoju czatu.
  2. Logika aplikacji do obsługi czatu wdrożona w AppSheet, która znajduje się w Google Cloud, otrzymuje wiadomość.
  3. Opcjonalnie mechanizm aplikacji do obsługi czatu można zintegrować z usługami Google Workspace, takimi jak Apps Script czy Arkusze Google.
  4. Logika aplikacji Google Chat wysyła odpowiedź z powrotem do tej usługi.
  5. Odpowiedź jest wyświetlana użytkownikowi.

Pierwsze kroki znajdziesz w artykule o tworzeniu aplikacji do obsługi czatu za pomocą AppSheet.

Dialogflow

Aplikację do obsługi czatu możesz utworzyć za pomocą Dialogflow, platformy opartej na naturalnym języku do automatycznych rozmów i odpowiedzi dynamicznych. Ta architektura jest zalecana w przypadku tych zastosowań:

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

Poniższy diagram przedstawia architekturę aplikacji do obsługi czatu utworzonej przy użyciu Dialogflow:

Architektura aplikacji do obsługi czatu zaimplementowanej za pomocą Dialogflow.

Na poprzednim diagramie użytkownik korzystający z aplikacji Dialogflow udostępnia 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. Agent wirtualny Dialogflow, który działa w Google Cloud, odbiera i przetwarza wiadomość w celu wygenerowania odpowiedzi.
  3. Opcjonalnie za pomocą webflow Dialogflow agent Dialogflow może wchodzić w interakcje z zewnętrznymi usługami, takimi jak system zarządzania projektami czy narzędzie do zgłaszania zgłoszeń.
  4. Agent Dialogflow wysyła odpowiedź do usługi aplikacji Google Chat w Google Chat.
  5. Odpowiedź zostanie dostarczona do pokoju czatu.

Pierwsze kroki znajdziesz w artykule Tworzenie aplikacji Dialogflow Google Chat.

Aplikacja lub skrypt wiersza poleceń

Możesz utworzyć aplikację wiersza poleceń lub skrypt, która będzie wysyłać wiadomości do Google Chat lub wykonywać inne operacje, takie jak tworzenie pokoju czy zarządzanie członkami pokoju, bez możliwości bezpośredniego wywoływania aplikacji Google Chat lub odpowiadania na nią w Google Chat. Ta architektura jest zalecana w przypadku tych zastosowań:

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

Ten schemat przedstawia architekturę:

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

Na poprzednim diagramie w aplikacji Google Chat informacje są zawarte w ten sposób:

  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 Google Chat wydrukuje potwierdzenie w interfejsie wiersza poleceń.

Implementacja logiki aplikacji do obsługi czatu

Google Chat nie ogranicza sposobu implementacji logiki aplikacji. Możesz utworzyć parser poleceń o stałej składni, korzystać z zaawansowanych bibliotek lub usług AI i przetwarzania języków, subskrybować zdarzenia i reagować na nie oraz wykonywać inne działania odpowiednie do Twoich celów.

Obsługa interakcji użytkowników

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

Parser poleceń

Aplikacje do obsługi czatu oparte na poleceniach analizują ładunek zdarzeń interakcji z aplikacją Google Chat, a następnie wyodrębniają polecenia i parametry z tych treści. Więcej informacji znajdziesz w artykule Konfigurowanie poleceń po ukośniku z użytkownikami Google Chat.

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

Interfejs oparty na oknach

Aplikacje oparte na oknach reagują na zdarzenia interakcji z 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 prosić o działania.

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) do określenia, o co prosi użytkownik. Istnieje wiele sposobów wdrażania NLP. Możesz je stosować w dowolny sposób.

Możesz używać NLP w implementacji aplikacji do obsługi czatu z Dialogflow ES lub integracją Dialogflow CX Chat, co pozwala tworzyć agentów wirtualnych na potrzeby automatycznych rozmów i odpowiedzi dynamicznych.

Aktywne 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. Zamiast tego aplikacje do obsługi czatu (np. aplikacje innych firm lub wywołania z poziomu poleceń użytkownika) mogą być wywoływane, ale użytkownicy nie mogą korzystać z tych aplikacji 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 tej usługi.

Wzorce konwersacyjne

Zastanów się, w jaki sposób Twoja aplikacja Google Chat będzie odpowiadać użytkownikom. W sekcjach poniżej opisano wzorce rozmów, które może zaimplementować Twoja aplikacja do obsługi czatu.

Połączenia i odpowiedź (synchronizacja)

W synchronicznym wzorcu wywołań i odpowiedzi aplikacja Google Chat odpowiada na wiadomości od użytkowników w sposób bezpośredni. Jedna wiadomość wysłana przez użytkownika do aplikacji Google Chat powoduje wyświetlenie jednej odpowiedzi z aplikacji Google Chat, co widać na tym diagramie:

Architektura wiadomości synchronicznej.

Na poprzednim diagramie użytkownik korzystający z aplikacji do obsługi czatu przekazuje takie informacje:

  1. Użytkownik wysyła synchroniczną wiadomość do aplikacji Google Chat, na przykład „Kiedy 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 (asynchronicznie)

Wzorzec wielu odpowiedzi może zawierać wiadomości synchroniczne i asynchroniczne. Charakteryzuje się on 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 do obsługi czatu przekazuje takie informacje:

  1. Użytkownik wysyła synchroniczną wiadomość do aplikacji Google Chat, np. „Monitoruj ruch”.
  2. Aplikacja Google Chat wysyła do użytkownika synchroniczną wiadomość, aby potwierdzić żądanie, np. „Monitorowanie włączone”.
  3. Później aplikacja do obsługi czatu 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, np. „Monitorowanie wyłączone”.

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

Subskrybowanie zdarzeń (asynchronicznie)

We wzorcu asynchronicznym opartym na zdarzeniach aplikacja Google Chat rejestruje zdarzenia za pomocą interfejsu Google Workspace Event API. Aplikacje do obsługi czatu oparte na zdarzeniach analizują ładunek zdarzeń subskrypcji Google Chat, a potem odpowiadają na podstawie typu zdarzenia. Gdy nastąpi zdarzenie w pokoju czatu, w przypadku którego aplikacja Google Chat ma aktywną subskrypcję, wysyła to zdarzenie do aplikacji Google Chat. Aplikacja Google Chat może następnie opcjonalnie wygenerować dowolną liczbę odpowiedzi asynchronicznych, które będą wysyłane z powrotem do Google Chat za pomocą interfejsu Chat API.

Za pomocą tego typu logiki możesz aktualizować systemy zewnętrzne, takie jak system zarządzania zgłoszeniami, lub asynchronicznie wysyłać wiadomości do pokoju czatu, np. 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 następujący przepływ informacji:

  1. Aplikacja Google Chat subskrybuje pokój w Google Chat.
  2. Pokój, w którym aplikacja Google Chat subskrybuje zmiany.
  3. Aplikacja Google Chat wysyła zdarzenie do tematu w Pub/Sub, który pełni funkcję punktu końcowego powiadomień dotyczących subskrypcji. Zawiera ono informacje o zmianach w zasobie.
  4. Aplikacja Google Chat przetwarza wiadomość Pub/Sub, która zawiera zdarzenie, i w razie potrzeby podejmuje odpowiednie działania.

W przypadku tego typu wzorca konwersacyjnego możesz wdrożyć architekturę aplikacji do obsługi czatu za pomocą Pub/Sub.

Jednokierunkowa wiadomość z aplikacji Google Chat

Jednokierunkowa wiadomość ze wzorca aplikacji do obsługi czatu pozwala aplikacji Google Chat wysyłać wiadomości asynchroniczne do pokoju czatu, ale nie pozwala użytkownikom na bezpośrednią interakcję z aplikacją Google Chat. Nie jest on konwersacyjny ani interaktywny, ale może być przydatny np. w przypadku raportowania alarmów. Jak widać na tym schemacie:

Architektura wiadomości jednokierunkowej.

Na poprzednim diagramie użytkownik 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 pod adresem 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.

Jednokierunkowa wiadomość do aplikacji Google Chat

Jednokierunkowa wiadomość do wzorca aplikacji do obsługi czatu pozwala użytkownikowi wysłać wiadomość do aplikacji Google Chat, w której aplikacja Google Chat nie odpowiada, podczas przetwarzania żądania. Chociaż taka architektura jest technicznie możliwa, powoduje to frustrację użytkowników, dlatego zdecydowanie odradzamy stosowanie tego wzorca.