「とりあえずGoogleのAPI使ってみる」が結構大変だったので最短手順をメモしておく【2025】

に公開

何をするか

ADK(Agent Development Kit)の勉強をしていて、AIエージェントからGmailのデータを参照したいなと思い、Gmail APIを使ってみることにしました。

  • 実行環境:Google Colaboratory
  • 言語:Python

「とりあえずGmail API使ってみるか」のノリで始めたら結構面倒くさく、GoogleのPythonライブラリの仕様が変わっていて古い記事の通りには作業が進まないなど少し時間を溶かしました。
2025年10月現在の自分的最短手順をメモしておきます。

今回はGmail APIで試しましたが、Google側の設定は認証関連のため、他のAPIを使う場合でも変わらないので汎用的なはずです。

Google側設定(6ステップ)

1. GCP プロジェクト作成

  • すでにプロジェクトがある人
    • それを使って下さい。次のセクションへ
  • まだプロジェクトがない人
    • GCPコンソールにアクセスしてプロジェクトを作成して下さい。

https://developers.google.com/workspace/guides/create-project?hl=ja

2. API有効化

  • すでにGmail APIを有効化している人
    • 次のセクションへ
  • まだ有効化していない人
    • 有効化して下さい。
    1. サイドメニュー → [APIとサービス] → [ライブラリ]
    2. 検索欄で「Gmail API」を検索
    3. ヒットしたGmail APIの[有効にする]をクリック

https://cloud.google.com/service-usage/docs/enable-disable?hl=ja#enabling

3. OAuth 2.0クライアントID作成

  • すでにOAuth 2.0クライアントIDを作成している人
    • それを使って下さい。次のセクションへ
  • まだ作成していない人
    • Oauth 2.0クライアントIDを作成して下さい。
    1. [APIとサービス] → [認証情報] → [認証情報を作成] → [OAuth クライアントID]で作成開始
    2. [アプリケーションの種類]は[ウェブ アプリケーション]を選択
    3. 承認済みのリダイレクト URIに以下を追加
      • http://localhost:8888/
      • http://localhost:8080/
      • https://developers.google.com/oauthplayground
    4. [作成]

4. OAuth同意画面を構成

  • すでに同意画面を構成している人
    • それを使って下さい。次のセクションへ
    • [APIとサービス] → [OAuth 同意画面] → [ブランディング]で設定済み画面が表示されていれば構成済みです。
  • まだ構成していない人
    • OAuth同意画面を構成して下さい。
    1. [APIとサービス] → [OAuth 同意画面] → [ブランディング]で構成開始
    2. アプリ名・ユーザーサポートメール・デベロッパーの連絡先情報を入力
    3. [作成]

https://developers.google.com/workspace/guides/configure-oauth-consent?hl=ja#configure_oauth_consent

5. 自分をテストユーザーに追加

  • すでにテストユーザー追加している人
    • 次のセクションへ
  • まだ追加していない人
    • [APIとサービス] → [OAuth 同意画面] → [対象]で追加開始
    1. [テストユーザー]の[+Add users]から自分のメアドを追加

6. OAuth 2.0 PlaygroundでAuthorization code取得

  1. OAuth 2.0クライアントのクライアント IDクライアント シークレットを確認
    1. [APIとサービス] → [認証情報]から作成済みのOAuth2.0クライアントIDを選択
    2. 詳細ページでクライアント IDクライアント シークレットをコピー
  2. Authorization codeを取得
    1. OAuth 2.0 Playgroundにアクセス
    2. 右上の歯車(⚙)でOAuth Client IDOAuth Client secretに先ほどコピーしたクライアント IDクライアント シークレットを入力
    3. 左側の[Input your own scopes]入力欄にhttps://www.googleapis.com/auth/gmail.readonlyを入力
    4. [Authorize APIs]押下
    5. Authorization codeが表示されるのでコピー

コーディング

Google Colaboratoryで作業をします。

Access Token取得

ここまでで取得した以下の値を設定して下さい。

  • AUTH_CODE: Authorization code
  • CLIENT_ID: クライアント ID
  • CLIENT_SECRET: クライアント シークレット

Pythonでやっていますが、https://oauth2.googleapis.com/tokenを叩くだけたのでcurlとかでやってもOKです。

import requests

AUTH_CODE = "XXX"
CLIENT_ID = "XXX"
CLIENT_SECRET = "XXX"
REDIRECT_URI = "https://developers.google.com/oauthplayground"
TOKEN_URL = "https://oauth2.googleapis.com/token"

data = {
    "code": AUTH_CODE,
    "client_id": CLIENT_ID,
    "client_secret": CLIENT_SECRET,
    "redirect_uri": REDIRECT_URI,
    "grant_type": "authorization_code"
}

response = requests.post(TOKEN_URL, data=data)
print(response.json())
レスポンス
{'access_token': 'XXX', 'scope': 'https://www.googleapis.com/auth/gmail.readonly', 'token_type': 'Bearer', 'refresh_token_expires_in': 604799}

access_tokenをコピーして下さい。

認証

先ほどコピーしたaccess_tokenを設定して下さい。
認証に成功するはずです。

from google.oauth2.credentials import Credentials

ACCESS_TOKEN = "XXX"

creds = Credentials(token=ACCESS_TOKEN)

やっとGmail API叩く

やっとGmail APIを叩けました!

from googleapiclient.discovery import build

service = build("gmail", "v1", credentials=creds)
service.users().messages().list(userId="hogehoge@gmail.com", maxResults=10).execute()

APIを叩くまでに10ステップも必要でした。意外と面倒くさいと思いました。
今回はGmail APIで試しましたが、個人のデータにアクセスする系の他のGoogleのAPI(SpreadSheets APIなど)もおそらく同様なので誰かの役に立てばと思います。

参考

Discussion