Python のクイックスタート

Google Chat API にリクエストを送信する Python コマンドライン アプリケーションを作成します。

クイックスタートでは、Google Workspace API を呼び出すアプリを設定して実行する方法について説明します。このクイックスタートでは、テスト環境に適した簡略化された認証方法を使用します。本番環境では、アプリに適したアクセス認証情報を選択する前に、認証と認可について学習することをおすすめします。

このクイックスタートでは、Google Workspace の推奨 API クライアント ライブラリを使用して、認証および承認フローの詳細の一部を処理します。

目標

  • 環境をセットアップする。
  • クライアント ライブラリをインストールする。
  • サンプルを設定します。
  • サンプルを実行します。

前提条件

このクイックスタートを実行するには、次の前提条件を満たしている必要があります。

環境の設定

このクイックスタートを完了するには、環境を設定します。

API を有効にする

Google API を使用する前に、Google Cloud プロジェクトで API を有効にする必要があります。1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。
  • Google Cloud コンソールで、Google Chat API を有効にします。

    API の有効化

このクイックスタートを新しい Google Cloud プロジェクトを使用して完了する場合は、OAuth 同意画面を構成します。Cloud プロジェクトでこの手順をすでに完了している場合は、次のセクションに進んでください。

  1. Google Cloud コンソールで、メニュー > > [ブランディング] に移動します。

    [ブランディング] に移動

  2. をすでに構成している場合は、[ブランディング]、[対象ユーザー]、[データアクセス] で次の OAuth 同意画面の設定を構成できます。[ まだ設定されていません] というメッセージが表示された場合は、[使ってみる] をクリックします。
    1. [アプリ情報] の [アプリ名] に、アプリの名前を入力します。
    2. [ユーザー サポートメール] で、ユーザーが同意について問い合わせる際に使用するサポートのメールアドレスを選択します。
    3. [続行] をクリックします。
    4. [対象] で [内部] を選択します。
    5. [続行] をクリックします。
    6. [連絡先情報] で、プロジェクトに対する変更の通知を受け取るメールアドレスを入力します。
    7. [続行] をクリックします。
    8. [完了] で、Google API サービスのユーザーデータに関するポリシーを確認し、同意する場合は [Google API サービス: ユーザーデータに関するポリシーに同意します] を選択します。
    9. [続行] をクリックします。
    10. [作成] をクリックします。
  3. 現時点では、スコープの追加はスキップできます。今後、Google Workspace 組織外で使用するアプリを作成する場合は、[ユーザータイプ] を [外部] に変更する必要があります。次に、アプリに必要な認可スコープを追加します。詳細については、OAuth 同意画面を構成するの完全なガイドをご覧ください。

デスクトップ アプリケーションの認証情報を承認する

エンドユーザーを認証してアプリ内でユーザーデータにアクセスするには、1 つ以上の OAuth 2.0 クライアント ID を作成する必要があります。クライアント ID は、Google の OAuth サーバーで個々のアプリを識別するために使用します。アプリが複数のプラットフォームで実行される場合は、プラットフォームごとに個別のクライアント ID を作成する必要があります。
  1. Google Cloud コンソールで、メニュー > > [クライアント] に移動します。

    [クライアント] に移動

  2. [Create Client] をクリックします。
  3. [アプリケーション タイプ] > [デスクトップ アプリ] をクリックします。
  4. [名前] フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
  5. [Create] をクリックします。

    新しく作成した認証情報は、[OAuth 2.0 クライアント ID] に表示されます。

  6. ダウンロードした JSON ファイルを credentials.json として保存し、作業ディレクトリに移動します。

Google Chat アプリを構成する

Google Chat API を呼び出すには、Google Chat 用アプリを構成する必要があります。書き込みリクエストの場合、Google Chat は次の情報を使用して UI で Google Chat 用アプリを属性付けします。

  1. Google Cloud コンソールで、Chat API の [構成] ページに移動します。

    Chat API の構成ページに移動

  2. [Application info] に次の情報を入力します。

    1. [アプリ名] フィールドに「Chat API quickstart app」と入力します。
    2. [アバターの URL] フィールドに「https://developers.google.com/chat/images/quickstart-app-avatar.png」と入力します。
    3. [説明] フィールドに「Quickstart for calling the Chat API」と入力します。
  3. [インタラクティブ機能] で、[インタラクティブ機能を有効にする] トグルをオフにして、Chat 用アプリのインタラクティブ機能を無効にします。

  4. [保存] をクリックします。

Google クライアント ライブラリをインストールする

  • Python 用 Google クライアント ライブラリをインストールします。

    pip install --upgrade google-apps-chat google-auth-httplib2 google-auth-oauthlib 

サンプルを構成する

  1. 作業ディレクトリに quickstart.py という名前のファイルを作成します。
  2. quickstart.py に次のコードを含めます。

    chat/quickstart/quickstart.py
    from __future__ import print_function  import os.path  from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from google.apps import chat_v1 as google_chat   # If modifying these scopes, delete the file token.json. SCOPES = ['https://www.googleapis.com/auth/chat.spaces.readonly']   def main():     """Shows basic usage of the Google Chat API.     """     creds = None     # The file token.json stores the user's access and refresh tokens, and is     # created automatically when the authorization flow completes for the first     # time.     if os.path.exists('token.json'):         creds = Credentials.from_authorized_user_file('token.json', SCOPES)     # If there are no (valid) credentials available, let the user log in.     if not creds or not creds.valid:         if creds and creds.expired and creds.refresh_token:             creds.refresh(Request())         else:             flow = InstalledAppFlow.from_client_secrets_file(                 'credentials.json', SCOPES)             creds = flow.run_local_server(port=0)         # Save the credentials for the next run         with open('token.json', 'w') as token:             token.write(creds.to_json())      try:         # Create a client         client = google_chat.ChatServiceClient(             credentials = creds,             client_options = {                 "scopes" : SCOPES             }         )          # Initialize request argument(s)         request = google_chat.ListSpacesRequest(             # Filter spaces by space type (SPACE or GROUP_CHAT or DIRECT_MESSAGE)             filter = 'space_type = "SPACE"'         )          # Make the request         page_result = client.list_spaces(request)          # Handle the response. Iterating over page_result will yield results and         # resolve additional pages automatically.         for response in page_result:             print(response)     except Exception as error:         # TODO(developer) - Handle errors from Chat API.         print(f'An error occurred: {error}')   if __name__ == '__main__':     main()

サンプルの実行

  1. 作業ディレクトリで、サンプルをビルドして実行します。

    python3 quickstart.py 
  1. サンプルを初めて実行すると、アクセス権限の承認を求めるメッセージが表示されます。
    1. Google アカウントにまだログインしていない場合は、プロンプトが表示されたらログインします。複数のアカウントにログインしている場合は、承認に使用するアカウントを 1 つ選択します。
    2. [Accept] をクリックします。

    Python アプリケーションが実行され、Google Chat API が呼び出されます。

    認可情報はファイル システムに保存されるため、次回サンプルコードを実行するときに認可を求められることはありません。

次のステップ