Z tego przewodnika dowiesz się, jak skonfigurować konto usługi i używać go do uzyskiwania dostępu do interfejsu Google Chat REST API w imieniu aplikacji do obsługi czatu. Najpierw dowiesz się, jak utworzyć konto usługi. Następnie pokazuje, jak napisać skrypt korzystający z konta usługi do uwierzytelniania w interfejsie Chat API i publikować wiadomość w pokoju czatu.
Aplikacje Google Chat mogą używać kont usługi do asynchronicznego wywoływania interfejsu Google Chat REST API, aby:
- Wysyłaj wiadomości do Google Chat za pomocą
spaces.messages.create
do:- Powiadamiaj użytkowników o zakończeniu długo trwającego zadania w tle.
- Ostrzegaj użytkowników, że serwer przeszedł w tryb offline.
- Poproś osobę z działu obsługi klienta o rozstrzygnięcie problemu w nowo otwartym zgłoszeniu.
- Zaktualizuj wiadomości wysłane za pomocą
spaces.messages.update
do:- Zmień stan „W toku”.
- Zaktualizuj osobę przypisaną do zadania lub termin.
- Wyświetl listę użytkowników w pokoju z funkcją
spaces.members.list
, aby:- Sprawdzanie, kto jest w pokoju.
- Sprawdź, czy członkostwo w pokoju obejmuje wszystkich członków zespołu.
Po uwierzytelnieniu za pomocą konta usługi informacje o postępach w pokoju czatu i wykonywaniu związanych z nimi działań muszą być dostępne w tym pokoju. Aby na przykład wyświetlić listę osób w pokoju lub utworzyć wiadomość w pokoju, aplikacja Google Chat musi być członkiem tego pokoju.
Jeśli Twoja aplikacja do obsługi czatu potrzebuje dostępu do danych użytkownika lub wykonuje działania w jego imieniu, uwierzytelnij się jako użytkownik.
Jeśli jesteś administratorem domeny, możesz przyznać upoważnienie w całej domenie do autoryzowania konta usługi aplikacji, aby umożliwić dostęp do danych użytkowników bez potrzeby uzyskiwania zgody każdego użytkownika. Po skonfigurowaniu przekazywania dostępu w całej domenie możesz wykonywać wywołania interfejsu API przy użyciu konta usługi, by podszywać się pod konta użytkowników. Chociaż konto usługi jest używane do uwierzytelniania, przekazywanie dostępu w całej domenie może podszywać się pod użytkowników, dlatego jest uznawane za uwierzytelnianie użytkownika. W przypadku każdej funkcji, która wymaga uwierzytelniania użytkowników, możesz używać przekazywania dostępu w całej domenie.
Więcej informacji o tym, kiedy aplikacje do obsługi czatu wymagają uwierzytelniania i jakiego rodzaju uwierzytelniania należy używać, znajdziesz w artykule Typy wymaganych uwierzytelniania w artykule Uwierzytelnianie i interfejs API Chat.
Wymagania wstępne
Aby uruchomić przykład z tego przewodnika, musisz spełniać te wymagania wstępne:
Python
- Python w wersji 3.6 lub nowszej
- narzędzie pip do zarządzania pakietami,
Biblioteki klienta Google dla języka Python. 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. Aby dowiedzieć się, jak 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:
- Informacje o tworzeniu i publikowaniu aplikacji do obsługi czatu znajdziesz w artykule 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 i rozmów w Google Chat.
Krok 1. Utwórz konto usługi w Google Cloud Console
Utwórz konto usługi, za pomocą którego aplikacja Google Chat będzie uzyskiwać dostęp 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.
- Wpisz szczegóły konta usługi, a potem 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 cofanie dostępu do zasobów.
- Kliknij Dalej.
- Opcjonalnie: wpisz użytkowników lub grupy, które mogą zarządzać kontem usługi i wykonywać na nim czynności. Więcej informacji znajdziesz w artykule Zarządzanie personifikacją na koncie usługi.
- Kliknij Gotowe. Zanotuj adres e-mail konta usługi.
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 i kliknij Utwórz.
Nowa para kluczy publiczny/prywatny zostanie wygenerowana i pobrana na komputer jako nowy plik. Ten plik jest jedyną kopią tego klucza. Informacje o tym, jak bezpiecznie przechowywać klucz, znajdziesz w sekcji Zarządzanie kluczami konta usługi.
- Kliknij Zamknij.
Więcej informacji o kontach usługi znajdziesz w sekcji 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 Chat REST API z użyciem 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órą można uzyskać za pomocą metodyspaces.list
w interfejsie Chat API lub z adresu URL pokoju.
Krok 3. Uruchom pełny 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 usługi Chat, który odpowiada, publikując wiadomość w pokoju czatu jako aplikację do obsługi czatu.
Rozwiązywanie problemu z przykładem
W tej sekcji opisano typowe problemy, które mogą wystąpić podczas próby uruchomienia tego przykładu.
Nie masz uprawnień do korzystania z tej aplikacji
Podczas uruchamiania 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 chce opublikować treści.
Aby naprawić błąd, dodaj aplikację Google Chat do pokoju czatu, którego dotyczy chat_app_auth.py
.
Następny krok
Więcej informacji znajdziesz w dokumentacji referencyjnej interfejsu Chat API.