Python クイックスタート

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

クイックスタートでは、Google Workspace API を呼び出すアプリを設定して実行する方法について説明します。

Google Workspace クイックスタートでは、API クライアント ライブラリを使用して認証と認可フローの詳細の一部を処理します。独自のアプリにはクライアント ライブラリを使用することをおすすめします。サンプルアプリを実行するには、各クイックスタートで認証と認可を有効にする必要があります。Google Workspace API の認証と認可に不慣れな場合は、認証と認可の概要をご覧ください。

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

目標

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

Prerequisites

このクイックスタートを実行するには、次の前提条件が必要です。

  • Google アカウント。

環境をセットアップする

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

API の有効化

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

    API の有効化

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

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

    [認証情報] に移動

  2. [認証情報を作成] > [OAuth クライアント ID] をクリックします。
  3. [アプリケーションの種類] > [デスクトップ アプリ] をクリックします。
  4. [名前] フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
  5. [作成] をクリックします。OAuth クライアント作成画面が表示され、新しいクライアント ID とクライアント シークレットが表示されます。
  6. [OK] をクリックします。新しく作成された認証情報は、[OAuth 2.0 クライアント ID] に表示されます。
  7. ダウンロードした JSON ファイルを credentials.json として保存し、ファイルを作業ディレクトリに移動します。

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

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

    pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
    

サンプルを構成する

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

    sheets/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 googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # If modifying these scopes, delete the file token.json.
    SCOPES = ['https://www.googleapis.com/auth/spreadsheets.readonly']
    
    # The ID and range of a sample spreadsheet.
    SAMPLE_SPREADSHEET_ID = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'
    SAMPLE_RANGE_NAME = 'Class Data!A2:E'
    
    
    def main():
        """Shows basic usage of the Sheets API.
        Prints values from a sample spreadsheet.
        """
        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:
            service = build('sheets', 'v4', credentials=creds)
    
            # Call the Sheets API
            sheet = service.spreadsheets()
            result = sheet.values().get(spreadsheetId=SAMPLE_SPREADSHEET_ID,
                                        range=SAMPLE_RANGE_NAME).execute()
            values = result.get('values', [])
    
            if not values:
                print('No data found.')
                return
    
            print('Name, Major:')
            for row in values:
                # Print columns A and E, which correspond to indices 0 and 4.
                print('%s, %s' % (row[0], row[4]))
        except HttpError as err:
            print(err)
    
    
    if __name__ == '__main__':
        main()

サンプルの実行

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

    python3 quickstart.py
    
  2. サンプルを初めて実行すると、アクセスを承認するように求められます。

    1. まだ Google アカウントにログインしていない場合は、ログインするように求められます。複数のアカウントにログインしている場合は、承認に使用するアカウントを 1 つ選択してください。
    2. [同意する] をクリックします。

    認可情報はファイル システムに保存されているため、次回サンプルコードを実行するときに、承認を求めるプロンプトは表示されません。

Google Sheets API にリクエストを送信する最初の Python アプリケーションが正常に作成されました。

次のステップ