Jako deweloper aplikacji Google Chat możesz potrzebować debugowania kodu, aby przetestować zmiany lub rozwiązać złożone problemy. Debugowanie aplikacji do obsługi czatu można przeprowadzać na wiele różnych sposobów w zależności od architektury aplikacji, jej funkcji, sposobu wdrażania i Twoich preferencji.
Na tej stronie dowiesz się, jak debugować aplikację do czatu HTTP za pomocą ngroka, czyli ujednoliconej platformy wejścia, której możesz używać do testowania lokalnych środowisk deweloperskich. W tym przewodniku przetestujesz zmiany w kodzie w środowisku lokalnym i rozwiążesz problemy w środowisku zdalnym.
Debugowanie w lokalnym środowisku programistycznym
W tej sekcji możesz korzystać z aplikacji do obsługi czatu, która działa w środowisku lokalnym.
Rysunek 1. Debugowanie w lokalnym środowisku programistycznym.
Warsztat
Node.js
Python
Java
Wymagania wstępne
Node.js
- Najnowsze wersje
node
inpm
zainstalowane w środowisku lokalnym. Najnowsza wersja
nodemon
zainstalowana w środowisku lokalnym, używana do automatycznego ponownego wczytywania:npm install -g nodemon
Aplikacja do obsługi czatu HTTP skonfigurowana do wysyłania wiadomości. Postępuj zgodnie z instrukcjami w sekcjach Wymagania wstępne, Konfigurowanie środowiska i Publikowanie aplikacji w Google Chat w przewodniku Szybki start. Jedyna różnica polega na tym, że musisz ustawić nazwę aplikacji na
Debug App
, a adres URL punktu końcowego HTTP na dowolną wartość, np.http://example.com
.Środowisko IDE skonfigurowane w środowisku lokalnym, które umożliwia debugowanie. W tym przewodniku używamy
Visual Studio Code
IDE i jego domyślnych funkcji debugowania w celach ilustracyjnych.Git
zainstalowany w środowisku lokalnym.Konto
ngrok
.
Python
- Najnowsza wersja
python3
zainstalowana w środowisku lokalnym. - Najnowsza wersja
pip
ivirtualenv
zainstalowana w środowisku lokalnym. Służą one odpowiednio do zarządzania pakietami Pythona i środowiskami wirtualnymi. - Aplikacja do obsługi czatu HTTP skonfigurowana do wysyłania wiadomości. Postępuj zgodnie z instrukcjami w sekcjach Wymagania wstępne, Konfigurowanie środowiska i Publikowanie aplikacji w Google Chat w przewodniku Szybki start. Jedyna różnica polega na tym, że musisz ustawić nazwę aplikacji na
Debug App
, a adres URL punktu końcowego HTTP na dowolną wartość, np.http://example.com
. - Środowisko IDE skonfigurowane w środowisku lokalnym, które umożliwia debugowanie. W tym przewodniku używamy
Visual Studio Code
IDE i jego domyślnych funkcji debugowania w celach ilustracyjnych. Git
zainstalowany w środowisku lokalnym.- Konto
ngrok
. - Najnowsza wersja
gcloud
zainstalowana i zainicjowana w środowisku lokalnym.
Java
- Najnowsza stabilna wersja
Java SE 11's JDK
zainstalowana w środowisku lokalnym. - Najnowsza wersja
Apache Maven
zainstalowana w środowisku lokalnym, która służy do zarządzania projektami Java. - Aplikacja do obsługi czatu HTTP skonfigurowana do wysyłania wiadomości. Postępuj zgodnie z instrukcjami w sekcjach Wymagania wstępne, Konfigurowanie środowiska i Publikowanie aplikacji w Google Chat w przewodniku Szybki start. Jedyna różnica polega na tym, że musisz ustawić nazwę aplikacji na
Debug App
, a adres URL punktu końcowego HTTP na dowolną wartość, np.http://example.com
. - Środowisko IDE skonfigurowane w środowisku lokalnym, które umożliwia debugowanie. W tym przewodniku używamy
Visual Studio Code
IDE i jego domyślnych funkcji debugowania w celach ilustracyjnych. Git
zainstalowany w środowisku lokalnym.- Konto
ngrok
. - Najnowsza wersja
gcloud
zainstalowana i zainicjowana w środowisku lokalnym.
Udostępnianie usługi localhost publicznie
Musisz połączyć środowisko lokalne z internetem, aby aplikacja Chat miała do niego dostęp. Aplikacja ngrok
służy do przekierowywania żądań HTTP wysyłanych pod publiczny adres URL do środowiska lokalnego.
- W przeglądarce w środowisku lokalnym zaloguj się na konto
ngrok
. - Zainstaluj aplikację i skonfiguruj urządzenie
authtoken
w środowisku lokalnym. - Utwórz w swoim koncie domenę statyczną, która w instrukcjach tego przewodnika jest oznaczona jako
NGROK_STATIC_DOMAIN
.ngrok
Konfigurowanie aplikacji Google Chat
Skonfiguruj aplikację do obsługi czatu tak, aby wysyłała wszystkie żądania HTTP do Twojej statycznej domeny.
W konsoli Google Cloud otwórz stronę interfejsu Google Chat API:
Kliknij kartę Configuration (Konfiguracja).
Kliknij Funkcje interaktywne > Ustawienia połączenia i ustaw wartość pola tekstowego Adres URL punktu końcowego HTTP na:
https://NGROK_STATIC_DOMAIN
Zastąp
NGROK_STATIC_DOMAIN
statyczną domeną na konciengrok
.Kliknij Zapisz.
Rysunek 2. Aplikacja do obsługi czatu wysyła wszystkie żądania HTTP do domeny statycznej. ngrok
Usługa publiczna działa jako pomost między aplikacją do czatu a kodem aplikacji, który jest wykonywany lokalnie.
Testowanie aplikacji Google Chat
Aplikację do obsługi czatu możesz wdrażać, konfigurować, testować, debugować i automatycznie przeładowywać lokalnie.
Node.js
Sklonuj repozytorium
googleworkspace/google-chat-samples
z GitHuba na środowisko lokalne. Zawiera ono kod aplikacji do wykonania:git clone https://github.com/googleworkspace/google-chat-samples.git
W
Visual Studio Code
IDE zainstalowanym w środowisku lokalnym wykonaj te czynności:- W nowym oknie otwórz folder
google-chat-samples/node/basic-app
. Skonfiguruj aplikację do automatycznego ponownego ładowania w trybie debugowania, dodając 2 skrypty w pliku
package.json
:{ ... "scripts": { ... "debug": "node --inspect index.js", "debug-watch": "nodemon --watch ./ --exec npm run debug" } ... }
Zainstaluj aplikację z katalogu głównego:
npm install
Utwórz i skonfiguruj uruchomienie o nazwie
Debug Watch
, które uruchamia skryptdebug-watch
, tworząc plik.vscode/launch.json
w katalogu głównym:{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "launch", "name": "Debug Watch", "cwd": "${workspaceRoot}", "runtimeExecutable": "npm", "runtimeArgs": ["run-script", "debug-watch"] }] }
Dodaj punkt przerwania, który wstrzymuje przetwarzanie żądania HTTP w pliku
index.js
, i rozpocznij uruchamianie i debugowanie za pomocą dodanej wcześniej konfiguracjiDebug Watch
. Aplikacja działa już i nasłuchuje żądań HTTP na porcie9000
.Rysunek 3. Aplikacja działa i nasłuchuje żądań HTTP na porcie
9000
.
- W nowym oknie otwórz folder
Uruchom aplikację
ngrok
w środowisku lokalnym:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Zastąp
NGROK_STATIC_DOMAIN
statyczną domeną na konciengrok
. Wszystkie żądania są teraz przekierowywane do środowiska lokalnego i portu używanego przez aplikację.Rysunek 4. Terminal z
ngrok
działającym serwerem i przekierowaniem.Aplikacja
ngrok
uruchamia też interfejs internetowy na Twoim lokalnym hoście. Możesz monitorować wszystkie działania, otwierając go w przeglądarce.Rysunek 5. Interfejs internetowy hostowany przez aplikację
ngrok
, w którym nie widać żadnych żądań HTTP.Przetestuj aplikację do obsługi czatu, wysyłając do niej wiadomość bezpośrednią:
Otwórz Google Chat.
Kliknij Nowy czat
.W oknie wpisz nazwę aplikacji do obsługi czatu.
W wynikach wyszukiwania znajdź aplikację Chat i kliknij Dodaj > Chat.
W polu czatu wpisz
Hello
i naciśnijenter
. Aplikacja do czatu nie odpowiada, ponieważ jest aktywnie debugowana.
W
Visual Studio Code
w środowisku lokalnym możesz zobaczyć, że wykonanie zostało wstrzymane w ustawionym punkcie przerwania.Rysunek 6. Wykonywanie jest wstrzymane w ustawionym punkcie przerwania.
Gdy wznowisz wykonywanie w debuggerze,
Visual Studio Code
zanim Google Chat przekroczy limit czasu aplikacji do obsługi czatuYour message : Hello
, aplikacja odpowie.Dzienniki żądań i odpowiedzi HTTP możesz sprawdzić w interfejsie internetowym hostowanym przez aplikację
ngrok
w środowisku lokalnym.Rysunek 7. Żądanie HTTP z interfejsu internetowego hostowanego przez aplikację
ngrok
.Aby zmienić działanie aplikacji, zastąp
Your message
ciągiemHere was your message
w wierszu35
elementuindex.json
. Gdy zapiszesz plik,nodemon
automatycznie ponownie załaduje aplikację z zaktualizowanym kodem źródłowym, aVisual Studio Code
pozostanie w trybie debugowania.Rysunek 8. Aplikacja działa i nasłuchuje żądań HTTP na porcie
9000
ze wczytaną zmianą kodu.Tym razem zamiast wysyłać drugi komunikat
Hello
w pokoju możesz wybrać ostatnie żądanie HTTP zarejestrowane w interfejsie internetowym hostowanym przez aplikacjęngrok
w środowisku lokalnym i kliknąćReplay
. Podobnie jak ostatnio aplikacja Chat nie odpowiada, ponieważ jest aktywnie debugowana.Gdy wznowisz wykonywanie w debuggerze, w interfejsie internetowym hostowanym przez aplikację
ngrok
w środowisku lokalnym zobaczysz, że aplikacja generuje odpowiedź ze zaktualizowaną wersją wiadomościHere was your message : Hello
.Visual Studio Code
Python
Uzyskaj nowe dane logowania użytkownika, aby używać ich w domyślnych danych logowania aplikacji:
gcloud config set project PROJECT_ID
gcloud auth application-default login
Zastąp
PROJECT_ID
identyfikatorem projektu projektu Cloud aplikacji.Sklonuj repozytorium
googleworkspace/google-chat-samples
z GitHub na środowisko lokalne. Zawiera ono kod aplikacji:git clone https://github.com/googleworkspace/google-chat-samples.git
W
Visual Studio Code
IDE zainstalowanym w środowisku lokalnym wykonaj te czynności:- W nowym oknie otwórz folder
google-chat-samples/python/avatar-app
. Utwórz nowe środowisko wirtualne dla Pythona
env
i aktywuj je:virtualenv env
source env/bin/activate
Zainstaluj wszystkie zależności projektu za pomocą polecenia
pip
w środowisku wirtualnym:pip install -r requirements.txt
Utwórz w katalogu głównym plik
.vscode/launch.json
i skonfiguruj uruchomienie o nazwieDebug Watch
, które uruchamia aplikację z modułufunctions-framework
na porcie9000
w trybie debugowania w środowisku wirtualnymenv
:{ "version": "0.2.0", "configurations": [{ "type": "python", "request": "launch", "name": "Debug Watch", "python": "${workspaceFolder}/env/bin/python3", "module": "functions_framework", "args": [ "--target", "avatar_app", "--port", "9000", "--debug" ] }] }
Dodaj punkt przerwania, który wstrzymuje przetwarzanie żądania HTTP w pliku
main.py
, i rozpocznij uruchamianie i debugowanie za pomocą dodanej wcześniej konfiguracjiDebug Watch
. Aplikacja działa już i nasłuchuje żądań HTTP na porcie9000
.Rysunek 3. Aplikacja działa i nasłuchuje żądań HTTP na porcie
9000
.
- W nowym oknie otwórz folder
Uruchom aplikację
ngrok
w środowisku lokalnym:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Zastąp
NGROK_STATIC_DOMAIN
statyczną domeną na konciengrok
. Wszystkie żądania są teraz przekierowywane do środowiska lokalnego i portu używanego przez aplikację.Rysunek 4. Terminal z
ngrok
działającym serwerem i przekierowaniem.Aplikacja
ngrok
uruchamia też interfejs internetowy na Twoim lokalnym hoście. Możesz monitorować wszystkie działania, otwierając go w przeglądarce.Rysunek 5. Interfejs internetowy hostowany przez aplikację
ngrok
, w którym nie widać żadnych żądań HTTP.Przetestuj aplikację do obsługi czatu, wysyłając do niej wiadomość bezpośrednią:
Otwórz Google Chat.
Kliknij Nowy czat
.W oknie wpisz nazwę aplikacji do obsługi czatu.
W wynikach wyszukiwania znajdź aplikację Chat i kliknij Dodaj > Chat.
W polu czatu wpisz
Hey!
i naciśnijenter
. Aplikacja do czatu nie odpowiada, ponieważ jest aktywnie debugowana.
W
Visual Studio Code
w środowisku lokalnym możesz zobaczyć, że wykonanie zostało wstrzymane w ustawionym punkcie przerwania.Rysunek 6. Wykonywanie jest wstrzymane w ustawionym punkcie przerwania.
Gdy wznowisz wykonywanie w debuggerze,
Visual Studio Code
zanim Google Chat przekroczy limit czasu aplikacji do obsługi czatuVisual Studio Code
odpowie Twoim imieniem i nazwiskiem oraz zdjęciem awatara w wiadomości.Dzienniki żądań i odpowiedzi HTTP możesz sprawdzić w interfejsie internetowym hostowanym przez aplikację
ngrok
w środowisku lokalnym.Rysunek 7. Żądanie HTTP z interfejsu internetowego hostowanego przez aplikację
ngrok
.Aby zmienić działanie aplikacji, zastąp
Hello
kodemHey
w plikumain.py
.51
Gdy zapiszesz plik,Visual Studio Code
aplikacja automatycznie wczyta się ponownie ze zaktualizowanym kodem źródłowym i pozostanie w trybie debugowania.Rysunek 8. Aplikacja działa i nasłuchuje żądań HTTP na porcie
9000
ze wczytaną zmianą kodu.Tym razem zamiast wysyłać drugi komunikat
Hey!
w pokoju możesz wybrać ostatnie żądanie HTTP zarejestrowane w interfejsie internetowym hostowanym przez aplikacjęngrok
w środowisku lokalnym i kliknąćReplay
. Podobnie jak ostatnio, aplikacja Chat nie odpowiada, ponieważ jest aktywnie debugowana.Gdy wznowisz wykonywanie w debuggerze, w interfejsie internetowym hostowanym przez aplikację
ngrok
w środowisku lokalnym zobaczysz, że aplikacja generuje odpowiedź ze zaktualizowaną wersją wiadomości.Visual Studio Code
Java
Uzyskaj nowe dane logowania użytkownika, aby używać ich w domyślnych danych logowania aplikacji:
gcloud config set project PROJECT_ID
gcloud auth application-default login
Zastąp
PROJECT_ID
identyfikatorem projektu projektu Cloud aplikacji.Sklonuj repozytorium
googleworkspace/google-chat-samples
z GitHub w środowisku lokalnym. Zawiera ono kod aplikacji:git clone https://github.com/googleworkspace/google-chat-samples.git
W
Visual Studio Code
IDE zainstalowanym w środowisku lokalnym wykonaj te czynności:- W nowym oknie otwórz folder
google-chat-samples/java/avatar-app
. Skonfiguruj projekt Maven, aby uruchamiać aplikację
App
na porcie9000
lokalnie, dodając w plikupom.xml
wtyczkęfunction-maven-plugin
Cloud Functions Framework:... <plugin> <groupId>com.google.cloud.functions</groupId> <artifactId>function-maven-plugin</artifactId> <version>0.11.0</version> <configuration> <functionTarget>App</functionTarget> <port>9000</port> </configuration> </plugin> ...
Teraz możesz uruchomić go lokalnie w trybie debugowania:
mvnDebug function:run Preparing to execute Maven in debug mode Listening for transport dt_socket at address: 8000
Utwórz w katalogu głównym plik
.vscode/launch.json
i skonfiguruj uruchomienie o nazwieRemote Debug Watch
, które dołącza do aplikacji uruchomionej wcześniej na porcie8000
:{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Remote Debug Watch", "projectName": "http-function", "hostName": "localhost", "port": 8000 }] }
Dodaj punkt przerwania, który wstrzymuje przetwarzanie żądania HTTP w pliku
App.java
, i rozpocznij dołączanie i debugowanie za pomocą dodanej wcześniej konfiguracjiRemote Debug Watch
. Aplikacja działa już i nasłuchuje żądań HTTP na porcie9000
.Ilustracja 3. Aplikacja działa i nasłuchuje żądań HTTP na porcie
9000
.
- W nowym oknie otwórz folder
Uruchom aplikację
ngrok
w środowisku lokalnym:ngrok http --domain=NGROK_STATIC_DOMAIN 9000
Zastąp
NGROK_STATIC_DOMAIN
statyczną domeną na konciengrok
. Wszystkie żądania są teraz przekierowywane do środowiska lokalnego i portu używanego przez aplikację.Rysunek 4. Terminal z
ngrok
działającym serwerem i przekierowaniem.Aplikacja
ngrok
uruchamia też interfejs internetowy na Twoim lokalnym hoście. Możesz monitorować wszystkie działania, otwierając go w przeglądarce.Rysunek 5. Interfejs internetowy hostowany przez aplikację
ngrok
, w którym nie widać żadnych żądań HTTP.Przetestuj aplikację do obsługi czatu, wysyłając do niej wiadomość bezpośrednią:
Otwórz Google Chat.
Kliknij Nowy czat
.W oknie wpisz nazwę aplikacji do obsługi czatu.
W wynikach wyszukiwania znajdź aplikację Chat i kliknij Dodaj > Chat.
W polu czatu wpisz
Hey!
i naciśnijenter
. Aplikacja do czatu nie odpowiada, ponieważ jest aktywnie debugowana.
W
Visual Studio Code
w środowisku lokalnym możesz zobaczyć, że wykonanie zostało wstrzymane w ustawionym punkcie przerwania.Rysunek 6. Wykonywanie jest wstrzymane w ustawionym punkcie przerwania.
Gdy wznowisz wykonywanie w debuggerze,
Visual Studio Code
zanim Google Chat przekroczy limit czasu aplikacji do obsługi czatuVisual Studio Code
odpowie Twoim imieniem i nazwiskiem oraz zdjęciem awatara w wiadomości.Dzienniki żądań i odpowiedzi HTTP możesz sprawdzić w interfejsie internetowym hostowanym przez aplikację
ngrok
w środowisku lokalnym.Rysunek 7. Żądanie HTTP z interfejsu internetowego hostowanego przez aplikację
ngrok
.Aby zmienić działanie aplikacji, zastąp
Hello
słowemHey
w pliku55
, uruchom ponownie procesmvnDebug
i ponownie uruchomRemote Debug Watch
, aby ponownie podłączyć i uruchomić debugowanie.App.java
Tym razem zamiast wysyłać drugi komunikat
Hey!
w pokoju możesz wybrać ostatnie żądanie HTTP zarejestrowane w interfejsie internetowym hostowanym przez aplikacjęngrok
w środowisku lokalnym i kliknąćReplay
. Podobnie jak ostatnio aplikacja Chat nie odpowiada, ponieważ jest aktywnie debugowana.Gdy wznowisz wykonywanie w debuggerze, w interfejsie internetowym hostowanym przez aplikację
ngrok
w środowisku lokalnym zobaczysz, że aplikacja generuje odpowiedź ze zaktualizowaną wersją wiadomości.Visual Studio Code
Debugowanie w środowisku zdalnym
W tej sekcji możesz korzystać z aplikacji do obsługi czatu, która działa w środowisku zdalnym.
Rysunek 9. Debugowanie w środowisku zdalnym.
Wymagania wstępne
- Pokój na czacie z aplikacją do Google Chat. Możesz postępować zgodnie z instrukcjami w sekcji Testowanie aplikacji do Google Chat w przewodniku Szybki start i wyszukać aplikację do Google Chat, aby rozpocząć testowanie.
- Aplikacja działająca w środowisku zdalnym z włączonym debugerem na danym porcie jest w instrukcjach tego przewodnika oznaczana jako
REMOTE_DEBUG_PORT
. - Środowisko lokalne może
ssh
ze środowiskiem zdalnym. - Środowisko IDE skonfigurowane w środowisku lokalnym, które umożliwia debugowanie. W tym przewodniku używamy
Visual Studio Code
IDE i jego domyślnych funkcji debugowania w celach ilustracyjnych.
Łączenie środowisk lokalnego i zdalnego
W środowisku lokalnym, z którego chcesz zainicjować połączenie klienta debugowania, skonfiguruj tunel SSH:
ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS
Zastąp następujące elementy:
LOCAL_DEBUG_PORT
: Port debugowania w środowisku lokalnym.REMOTE_USERNAME
: Nazwa użytkownika w środowisku zdalnym.REMOTE_ADDRESS
: Adres środowiska zdalnego.REMOTE_DEBUG_PORT
: Port debugowania w środowisku zdalnym.
Port debugowania w środowisku lokalnym jest teraz połączony z portem debugowania w środowisku zdalnym.
Rozpocznij debugowanie
W Visual Studio Code
IDE zainstalowanym w środowisku lokalnym wykonaj te czynności:
- W nowym oknie otwórz kod źródłowy aplikacji.
Utwórz w katalogu głównym plik
.vscode/launch.json
i skonfiguruj uruchomienie o nazwieDebug Remote
, które będzie się łączyć z portem debugowania w środowisku lokalnym:Node.js
{ "version": "0.2.0", "configurations": [{ "type": "node", "request": "attach", "name": "Debug Remote", "address": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }
Python
{ "version": "0.2.0", "configurations": [{ "type": "python", "request": "attach", "name": "Debug Remote", "connect": { "host": "127.0.0.1", "port": LOCAL_DEBUG_PORT } }] }
Java
{ "version": "0.2.0", "configurations": [{ "type": "java", "request": "attach", "name": "Debug Remote", "hostName": "127.0.0.1", "port": LOCAL_DEBUG_PORT }] }
Zastąp
LOCAL_DEBUG_PORT
portem debugowania w środowisku lokalnym.Dodaj w kodzie źródłowym aplikacji punkt przerwania, który wstrzyma przetwarzanie żądania HTTP, a następnie uruchom i debuguj aplikację za pomocą dodanej wcześniej konfiguracji
Debug Remote
.
Na czacie z aplikacją Google Chat wpisz dowolny tekst, który chcesz przetestować, i naciśnij enter
. Aplikacja do czatu nie odpowiada, ponieważ jest aktywnie debugowana w Visual Studio Code
IDE.
Powiązane artykuły
- Dowiedz się, jak włączyć i tworzyć zapytania do logów błędów.
- Jak rozwiązywać problemy z aplikacją Google Chat, takie jak „Aplikacja nie odpowiada”, „Interfejs Google Chat API jest dostępny tylko dla użytkowników Google Workspace” lub „Użytkowników można wykluczyć z przestrzeni”.
- Dowiedz się, jak rozwiązywać problemy z kartami, takie jak nieprawidłowe wyświetlanie lub działanie komunikatów, okien dialogowych lub podglądów linków.