Uwierzytelnianie jako aplikacja do obsługi czatu

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

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:

  1. W konsoli Google Cloud kliknij Menu > Administracja > Konta usługi.

    Przejdź do kont usługi

  2. Kliknij Utwórz konto usługi.
  3. Wpisz szczegóły konta usługi, a potem kliknij Utwórz i kontynuuj.
  4. 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.
  5. Kliknij Dalej.
  6. 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.
  7. 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:

  1. W konsoli Google Cloud kliknij Menu > Administracja > Konta usługi.

    Przejdź do kont usługi

  2. Wybierz konto usługi.
  3. Kliknij Klucze > Dodaj klucz > Utwórz nowy klucz.
  4. 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.

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

  1. W katalogu roboczym utwórz plik o nazwie chat_app_auth.py.
  2. 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)
    
  3. W kodzie zastąp SPACE_NAME nazwą pokoju, którą można uzyskać za pomocą metody spaces.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.