Z tego przewodnika dowiesz się, jak skonfigurować konto usługi i używać go w celu korzystania z interfejsu Google Chat REST API w imieniu aplikacji Google Chat. Najpierw dowiesz się, jak utworzyć konto usługi. Następnie pokazuje, jak napisać skrypt korzystający z konta usługi do uwierzytelniania za pomocą interfejsu Chat API i publikować wiadomość w pokoju czatu.
Aplikacje do obsługi czatu mogą używać kont usługi do uwierzytelniania podczas asynchronicznego wywoływania interfejsu Google Chat REST API w celu:
- Wysyłaj wiadomości do Google Chat z użyciem
spaces.messages.create
do:- Powiadom użytkowników o zakończeniu uruchomionego długotrwałego zadania w tle.
- Powiadamiaj użytkowników o tym, że serwer jest offline.
- Poproś osobę odpowiedzialną za obsługę klienta, aby radził sobie w nowo otwartym zgłoszeniu.
- Zaktualizuj wysłane wcześniej wiadomości za pomocą
spaces.messages.update
na:- Zmień stan operacji w toku.
- Zaktualizuj osobę przypisaną do zadania lub termin oddania zadania.
- Wyświetl użytkowników w pokoju z
spaces.members.list
, aby:- Zobacz, kto jest w pokoju.
- Sprawdź, czy w pokoju są wszyscy członkowie zespołu.
Aby uwierzytelnić się przy użyciu konta usługi i uzyskać dostęp do danych w pokoju czatu lub wykonywać w nich określone czynności, aplikacje do obsługi czatu muszą należeć do tego pokoju. Aby na przykład utworzyć listę osób w pokoju lub utworzyć wiadomość w pokoju, aplikacja Google Chat musi być również członkiem tego pokoju.
Jeśli Twoja aplikacja do obsługi czatu potrzebuje dostępu do danych użytkownika lub wykonywać działania w jego imieniu, zamiast tego uwierzytelnij się jako użytkownik.
Aby dowiedzieć się, kiedy aplikacje do obsługi czatu wymagają uwierzytelniania i jakiego rodzaju uwierzytelniania należy użyć, przeczytaj artykuł Typy wymaganych uwierzytelniania w omówieniu uwierzytelniania i autoryzacji interfejsu Chat API.
Wymagania wstępne
Aby uruchomić przykład z tego przewodnika, musisz spełnić te warunki wstępne:
Python
- Python w wersji 3.6 lub nowszej
- Narzędzie do zarządzania pakietami pip
Biblioteki klienta Google dla Pythona. Aby je zainstalować, uruchom w wierszu poleceń to polecenie:
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
konto Google Workspace z dostępem do Google Chat,
Projekt Google Cloud z włączonym interfejsem Chat API. Jeżeli chcesz utworzyć projekt i włączyć interfejs API, przeczytaj artykuł Tworzenie projektu i włączanie interfejsu API.
Opublikowana aplikacja do obsługi czatu z członkostwem w pokoju czatu:
- Aby utworzyć i opublikować aplikację do obsługi czatu, przeczytaj artykuł Tworzenie aplikacji Google Chat za pomocą Cloud Functions.
- Informacje o dodawaniu aplikacji do Google Chat do pokoju czatu znajdziesz w artykule Dodawanie aplikacji do pokoi lub rozmów w Google Chat.
Krok 1. Utwórz konto usługi w Google Cloud Console
Utwórz konto usługi, które będzie używane przez aplikację do obsługi dostępu do interfejsów API Google.
Utwórz konto usługi:
Aby utworzyć konto usługi, wykonaj te czynności:
- W konsoli Google Cloud kliknij Menu > Administracja > Konta usługi.
- Kliknij Utwórz konto usługi.
- Podaj szczegóły konta usługi, a następnie kliknij Utwórz i kontynuuj.
- Opcjonalnie: przypisz role do konta usługi, aby przyznać dostęp do zasobów projektu Google Cloud. Więcej informacji znajdziesz w artykule Przyznawanie, zmienianie i anulowanie dostępu do zasobów.
- Kliknij Dalej.
- Opcjonalnie: wpisz użytkowników lub grupy, którzy mogą zarządzać kontem i wykonywać na nim działania. Więcej informacji znajdziesz w artykule Zarządzanie personifikacją konta usługi.
- Kliknij Gotowe.
Konto usługi pojawi się na stronie konta usługi. Następnie utwórz klucz prywatny dla konta usługi.
Tworzenie klucza prywatnego
Aby utworzyć klucz prywatny dla konta usługi, wykonaj te czynności:
- W konsoli Google Cloud kliknij Menu > Administracja > Konta usługi.
- Wybierz konto usługi.
- Kliknij Klucze > Dodaj klucz > Utwórz nowy klucz.
- Wybierz JSON, a następnie kliknij Utwórz.
Nowa para kluczy publicznych/prywatnych zostanie wygenerowana i pobrana na komputer jako nowy plik. Ten plik to jedyna kopia tego klucza. Informacje o tym, jak bezpiecznie przechowywać klucz, znajdziesz w artykule Zarządzanie kluczami konta usługi.
- Kliknij Zamknij.
Więcej informacji o kontach usługi znajdziesz w artykule Konta usługi w dokumentacji Google Cloud IAM.
Krok 2. Napisz skrypt, który korzysta z konta usługi do uwierzytelniania w interfejsie Chat REST API
Ten kod uwierzytelnia się za pomocą interfejsu API REST Chat przy użyciu konta usługi, a następnie publikuje wiadomość w pokoju czatu:
Python
- W katalogu roboczym utwórz plik o nazwie
chat_app_auth.py
. Umieść w kodzie
chat_app_auth.py
ten kod:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'service_account.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE_NAME with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE_NAME', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
W kodzie zastąp
SPACE_NAME
nazwą pokoju, który możesz uzyskać za pomocą metodyspaces.list
w interfejsie Chat API lub z adresu URL pokoju.
Krok 3. Uruchom cały przykład
W katalogu roboczym utwórz i uruchom przykład:
Python
python3 chat_app_auth.py
Skrypt wysyła uwierzytelnione żądanie do interfejsu API REST Chat, który odpowiada przez opublikowanie wiadomości w pokoju czatu jako aplikacji do obsługi czatu.
Rozwiązywanie problemu z przykładem
Ta sekcja zawiera opis typowych problemów, które mogą wystąpić podczas próby uruchomienia przykładowej aplikacji.
Nie masz uprawnień do korzystania z tej aplikacji
Po uruchomieniu chat_app_auth.py
może pojawić się błąd:
<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}/messages?alt=json returned "You are not permitted to use this app". Details: "You are not permitted to use this app">
Ten komunikat o błędzie oznacza, że aplikacja Google Chat nie ma uprawnień do publikowania wiadomości w pokoju czatu, w którym próbuje opublikować wiadomości.
Aby naprawić błąd, dodaj aplikację do obsługi czatu do pokoju czatu wskazanego w polu chat_app_auth.py
.
Następny krok
Funkcje interfejsu Chat API znajdziesz w dokumentacji referencyjnej