
PythonでGoogleの各種API(例:Google Sheets、Drive、Calendarなど)と連携したいときに便利なのが google-api-python-client
です。
このgoogle-api-python-client
は Google が公式に提供している Python 用のライブラリ(パッケージ) 。
その中でも from googleapiclient.discovery import build
は、Google API にアクセスするための「サービスオブジェクト」を作るための基本的な関数です。
この記事では build
の役割や使い方、活用シーン、注意点までをわかりやすく丁寧に解説します。
build とは?
build()
は、Googleが提供するAPIの「クライアントインターフェース」を生成する関数です。
Pythonコード上で build(serviceName, version)
を呼び出すことで、たとえば Google Sheets や Gmail などの各種APIの機能にアクセスできるようになります。
Google APIごとに異なるエンドポイントや認証を意識せず、Pythonから直接使える形にしてくれるのがこの build
関数の大きなメリットです。
具体例①:Google Sheets API のクライアントを作成する
まずは、Google Sheets API を操作する基本コードを見てみましょう。
Pythonでスプレッドシートにデータを書き込んだり、値を取得する等に使えます。
1 2 3 4 5 6 7 8 9 |
from googleapiclient.discovery import build from google.oauth2.service_account import Credentials SCOPES = ['https://www.googleapis.com/auth/spreadsheets'] creds = Credentials.from_service_account_file("credentials.json", scopes=SCOPES) service = build("sheets", "v4", credentials=creds) sheet = service.spreadsheets() |
このコードでやっていることは:
- サービスアカウントの認証情報を使って
Credentials
を作成 build("sheets", "v4", ...)
により Sheets API v4 のクライアントを生成.spreadsheets()
を呼ぶことで、スプレッドシートにアクセスするためのハンドラを取得
これ以降は sheet.values().get()
や sheet.values().update()
などを使って、Pythonからスプレッドシートを直接読み書きできます。
具体例②:Google Drive API のクライアントを作る
別のAPIでも同じように build()
を使います。
Drive API でファイル一覧を取得する例は次の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 |
from googleapiclient.discovery import build from google.oauth2.service_account import Credentials SCOPES = ['https://www.googleapis.com/auth/drive.readonly'] creds = Credentials.from_service_account_file("credentials.json", scopes=SCOPES) service = build("drive", "v3", credentials=creds) results = service.files().list(pageSize=10).execute() for file in results.get("files", []): print(file["name"]) |
このように、使いたいGoogle APIのサービス名(たとえば "drive")とバージョン(たとえば "v3")を指定するだけで、API操作が可能になります。
build の主な引数
build()
関数では以下のような引数を指定できます。
引数 | 説明 |
---|---|
serviceName |
利用したいAPI名(例:"sheets", "drive", "gmail") |
version |
利用するAPIのバージョン(例:"v4", "v3") |
credentials |
Google認証情報(Credentials オブジェクト) |
cache_discovery |
True でAPI定義のキャッシュを有効に(※通常は省略可) |
developerKey |
APIキー(OAuthを使わずキーで認証する場合) |
基本的には serviceName
, version
, credentials
の3つを指定するだけで使えます。
以下に、よく使われる serviceName
の例とその対応する Google API を一覧表にまとめました。
serviceName |
対応する Google API | 主な用途例 |
---|---|---|
"sheets" |
Google Sheets API | スプレッドシートの読み書き、セル更新など |
"drive" |
Google Drive API | ファイルの一覧取得、アップロード、削除など |
"gmail" |
Gmail API | メールの送信、受信履歴の取得、自動返信など |
"calendar" |
Google Calendar API | イベントの追加・取得、予定の管理 |
"docs" |
Google Docs API | ドキュメントの読み取り、テキスト挿入など |
"slides" |
Google Slides API | スライドの構成取得、テキスト・画像の挿入など |
"youtube" |
YouTube Data API v3 | 動画アップロード、チャンネル情報取得、再生回数分析など |
"people" |
People API | Google連絡先の取得、ユーザー情報の取得 |
"classroom" |
Google Classroom API | クラス作成、生徒の登録、課題の管理など |
"admin" |
Admin SDK(Directory API など) | 組織ユーザーの管理、グループの作成 |
"analytics" |
Google Analytics Reporting API / Data API | アクセス解析データの取得、レポート生成 |
"bigquery" |
BigQuery API | データのクエリ実行、テーブル操作など |
"cloudresourcemanager" |
Cloud Resource Manager API | プロジェクトやフォルダの管理 |
version
はそれぞれのAPIに対応するバージョン(例:"v4"
, "v3"
)を指定する必要があります。
正確なバージョンは Google API Explorer や 公式ドキュメント で確認できます。
活用シーン:どんなときに使う?
build()
は、以下のようなGoogleサービスをPythonから操作したいときに必須となる関数です。
- Google Sheets でスプレッドシートの自動書き込み・取得
- Google Drive でファイルやフォルダの一覧取得・ダウンロード
- Gmail の自動送信・受信内容の取得
- Google Calendar の予定作成や一覧取得
- YouTube の動画アップロード・チャンネル情報取得
Googleが提供しているAPIならほぼすべてに対応しており、幅広い自動化やデータ連携に活用できます。
注意点:使う前に認証設定が必要
build()
を使う前に、以下の準備が必要です。
- Google Cloud Console でプロジェクトを作成
- 該当するAPIを有効化(例:Google Sheets API)
- サービスアカウントを作成してJSON形式の鍵をダウンロード
- Pythonから
google-auth
ライブラリ等を使って認証設定
これらの手順を正しく踏んでいないと、build()
を使っても認証エラーになります。
まとめ
今回は from googleapiclient.discovery import build
の意味と使い方について詳しく紹介しました。
build()
はGoogleの各種APIと連携するためのクライアントを生成する関数- サービス名とバージョンを指定するだけで、簡単にAPI操作ができる
- 認証には
Credentials
を使い、サービスアカウント経由が一般的 - SheetsやDrive、Gmailなど多くのAPIで共通的に使える
- 事前にCloud ConsoleでのAPI有効化と鍵ファイル取得が必要
Googleのサービスを自動化・統合したいときに欠かせない関数です。
一度しっかり理解しておけば、様々な業務の効率化やデータ処理をPythonで自由自在に行えるようになります。