Z tego artykułu dowiesz się, jak utworzyć aplikację do obsługi czatu za pomocą Pub/Sub. Ten typ architektury aplikacji Google Chat jest przydatny, jeśli Twoja organizacja ma zaporę sieciową, która może uniemożliwiać Google Chat wysyłanie wiadomości do aplikacji Google Chat, lub jeśli aplikacja Google Chat korzysta z Google Workspace Events API. Ta architektura ma jednak następujące ograniczenia, ponieważ te aplikacje do czatu mogą tylko wysyłać i odbierać wiadomości asynchroniczne:
- Nie można używać okien dialogowych w wiadomościach. Zamiast tego użyj wiadomości na karcie.
- Nie można zaktualizować poszczególnych kart za pomocą odpowiedzi synchronicznej. Zamiast tego zaktualizuj cały komunikat, wywołując metodę
patch
.
Poniższy diagram przedstawia architekturę aplikacji do czatu utworzonej za pomocą Pub/Sub:
Na powyższym diagramie użytkownik wchodzący w interakcję z aplikacją Pub/Sub Chat ma następujący przepływ informacji:
Użytkownik wysyła wiadomość w Google Chat do aplikacji na czacie (na czacie lub w pokoju czatu) albo w pokoju czatu występuje zdarzenie, w przypadku którego aplikacja na czacie ma aktywną subskrypcję.
Chat wysyła wiadomość do tematu Pub/Sub.
Serwer aplikacji, czyli system w chmurze lub lokalny, który zawiera logikę aplikacji Chat, subskrybuje temat Pub/Sub, aby otrzymywać wiadomości przez zaporę.
Opcjonalnie aplikacja Chat może wywoływać interfejs Chat API, aby asynchronicznie publikować wiadomości lub wykonywać inne operacje.
Wymagania wstępne
Java
- Konto Google Workspace w wersji Business lub Enterprise z dostępem do Google Chat.
- Projekt Google Cloud z włączonymi płatnościami. Aby sprawdzić, czy w istniejącym projekcie włączone są płatności, zapoznaj się z artykułem Sprawdzanie stanu płatności w projektach. Aby utworzyć projekt i skonfigurować rozliczenia, przeczytaj artykuł Tworzenie projektu Google Cloud.
- Java 11 lub nowsza
- Narzędzie do zarządzania pakietami Maven
Python
- Konto Google Workspace w wersji Business lub Enterprise z dostępem do Google Chat.
- Projekt Google Cloud z włączonymi płatnościami. Aby sprawdzić, czy w istniejącym projekcie włączone są płatności, zapoznaj się z artykułem Sprawdzanie stanu płatności w projektach. Aby utworzyć projekt i skonfigurować rozliczenia, przeczytaj artykuł Tworzenie projektu Google Cloud.
- Python 3.6 lub nowszy
- Narzędzie do zarządzania pakietami pip
Node.js
- Konto Google Workspace w wersji Business lub Enterprise z dostępem do Google Chat.
- Projekt Google Cloud z włączonymi płatnościami. Aby sprawdzić, czy w istniejącym projekcie włączone są płatności, zapoznaj się z artykułem Sprawdzanie stanu płatności w projektach. Aby utworzyć projekt i skonfigurować rozliczenia, przeczytaj artykuł Tworzenie projektu Google Cloud.
- Node.js w wersji 14 lub nowszej
- Narzędzie do zarządzania pakietami npm
-
Zainicjowany projekt Node.js. Aby zainicjować nowy projekt, utwórz nowy folder i przejdź do niego, a potem uruchom to polecenie w interfejsie wiersza poleceń:
npm init
Konfigurowanie środowiska
Zanim zaczniesz korzystać z interfejsów Google API, musisz je włączyć w projekcie Google Cloud. W jednym projekcie Google Cloud możesz włączyć co najmniej 1 interfejs API.W konsoli Google Cloud włącz interfejsy Google Chat API i Pub/Sub API.
Konfigurowanie Pub/Sub
Utwórz temat Pub/Sub, do którego interfejs Chat API może wysyłać wiadomości. Zalecamy używanie jednego tematu w każdej aplikacji Chat.
Przyznaj usłudze Chat uprawnienia do publikowania w temacie, przypisując rolę Publikujący w Pub/Sub do tego konta usługi:
chat-api-push@system.gserviceaccount.com
Utwórz konto usługi dla aplikacji Chat, aby autoryzować ją w Pub/Sub i Chat, a następnie zapisz plik klucza prywatnego w katalogu roboczym.
Utwórz subskrypcję pull tematu.
Przypisz do utworzonego wcześniej konta usługi rolę subskrybującego Pub/Sub w subskrypcji.
Napisz skrypt
Java
W interfejsie CLI podaj dane logowania konta usługi:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
W interfejsie CLI podaj identyfikator projektu Google Cloud:
export PROJECT_ID=PROJECT_ID
W interfejsie CLI podaj identyfikator subskrypcji Pub/Sub, którą utworzyliśmy wcześniej:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
W katalogu roboczym utwórz plik o nazwie
pom.xml
.Wklej ten kod do pliku
pom.xml
:W katalogu roboczym utwórz strukturę katalogów
src/main/java
.W katalogu
src/main/java
utwórz plik o nazwieMain.java
.W pliku
Main.java
wklej ten kod:
Python
W interfejsie CLI podaj dane logowania konta usługi:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
W interfejsie CLI podaj identyfikator projektu Google Cloud:
export PROJECT_ID=PROJECT_ID
W interfejsie CLI podaj identyfikator subskrypcji Pub/Sub, którą utworzyliśmy wcześniej:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
W katalogu roboczym utwórz plik o nazwie
requirements.txt
.Wklej ten kod do pliku
requirements.txt
:W katalogu roboczym utwórz plik o nazwie
app.py
.W pliku
app.py
wklej ten kod:
Node.js
W interfejsie CLI podaj dane logowania konta usługi:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
W interfejsie CLI podaj identyfikator projektu Google Cloud:
export PROJECT_ID=PROJECT_ID
W interfejsie CLI podaj identyfikator subskrypcji Pub/Sub, którą utworzyliśmy wcześniej:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
W katalogu roboczym utwórz plik o nazwie
package.json
.Wklej ten kod do pliku
package.json
:W katalogu roboczym utwórz plik o nazwie
index.js
.W pliku
index.js
wklej ten kod:
Publikowanie aplikacji w Google Chat
W konsoli Google Cloud kliknij Menu> Interfejsy API i usługi> Włączone interfejsy API i usługi> Google Chat API> Konfiguracja.
Skonfiguruj aplikację Chat na potrzeby Pub/Sub:
- W polu Nazwa aplikacji wpisz
Quickstart App
. - W polu URL awatara wpisz
https://developers.google.com/chat/images/quickstart-app-avatar.png
. - W polu Opis wpisz
Quickstart app
. - W sekcji Funkcje wybierz Dołączanie do pokoi i rozmów grupowych.
- W sekcji Ustawienia połączenia wybierz Cloud Pub/Sub i wklej nazwę utworzonego wcześniej tematu Pub/Sub.
- W sekcji Widoczność wybierz Udostępnij tę aplikację do obsługi czatu Google konkretnym osobom i grupom w domenie i wpisz swój adres e-mail.
- W sekcji Logi wybierz Loguj błędy w usłudze Logging.
- W polu Nazwa aplikacji wpisz
Kliknij Zapisz.
Aplikacja jest gotowa do odbierania wiadomości w Google Chat i odpowiadania na nie.
Uruchamianie skryptu
W interfejsie wiersza poleceń przejdź do katalogu roboczego i uruchom skrypt:
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
Po uruchomieniu kodu aplikacja zacznie nasłuchiwać wiadomości publikowanych w temacie Pub/Sub.
Testowanie aplikacji Google Chat
Aby przetestować aplikację do obsługi czatu, otwórz pokój czatu z aplikacją i wyślij wiadomość:
Otwórz Google Chat, korzystając z konta Google Workspace, które zostało podane podczas dodawania siebie jako zaufanego testera.
- Kliknij Nowy czat.
- W polu Dodaj co najmniej 1 osobę wpisz nazwę aplikacji Chat.
Wybierz aplikację Chat z wyników. Otworzy się czat.
- Na nowym czacie z aplikacją wpisz
Hello
i naciśnijenter
.
Aby dodać zaufanych testerów i dowiedzieć się więcej o testowaniu funkcji interaktywnych, przeczytaj artykuł Testowanie funkcji interaktywnych w aplikacjach Google Chat.
Rozwiązywanie problemów
Gdy aplikacja Google Chat lub karta zwraca błąd, w interfejsie Google Chat pojawia się komunikat „Coś poszło nie tak”. lub „Nie udało się przetworzyć Twojej prośby”. Czasami interfejs Google Chat nie wyświetla żadnego komunikatu o błędzie, ale aplikacja lub karta Google Chat daje nieoczekiwany wynik, np. wiadomość na karcie może się nie pojawić.
Chociaż w interfejsie czatu może nie wyświetlać się komunikat o błędzie, opisowe komunikaty o błędach i dane logowania są dostępne, aby pomóc w naprawieniu błędów, gdy rejestrowanie błędów w aplikacjach na czat jest włączone. Pomoc dotyczącą wyświetlania, debugowania i naprawiania błędów znajdziesz w artykule Rozwiązywanie problemów z Google Chat.
Czyszczenie danych
Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, zalecamy usunięcie projektu w Cloud.
- W konsoli Google Cloud otwórz stronę Zarządzanie zasobami. Kliknij Menu > Administracja > Zarządzaj zasobami.
- Na liście projektów wybierz projekt, który chcesz usunąć, a potem kliknij Usuń .
- W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.
Powiązane artykuły
Aby dodać więcej funkcji do aplikacji Google Chat, zapoznaj się z tymi artykułami: