PythonでBlogger APIを叩くための最小構成ガイド

5 分で読めます

目次

ブログの更新を自動化したい、あるいは自分の書いたプログラムと連携させたいと考えたとき、強い味方になるのが「Blogger API」です。

Googleが提供するこのAPIを使えば、記事の投稿、修正、削除、さらにはコメントの管理まで、あらゆる操作をプログラムから自動で行うことができます。しかし、いざ使おうと公式ドキュメントを開くと、多機能すぎて「どこから手をつければいいのか分からない」という壁にぶつかりがちです。

そこで今回は、高機能な部分は一旦脇に置き、「まずはPythonでBloggerに接続して、自分のブログ情報を取得する」という最もシンプルな最小構成の手順を解説します。

1. 準備:3つの「神器」を揃える

APIを使うためには、プログラムに「権限」を与える必要があります。そのために必要なのが以下の3つです。

中でも重要なのが credentials.json です。これは、Googleがプログラムに対して発行する「限定的な身分証明書」のようなものです。APIキー(ただの文字列)と違い、特定のユーザーのブログを操作するための強力な許可証の素になります。

では、これを取得するための具体的な手順を見ていきましょう。

STEP 1: Google Cloud プロジェクトの作成

  1. Google Cloud Console にアクセスします。
  2. 画面上部のプロジェクト名をクリックし、「新しいプロジェクト」を作成します(例:my-blogger-automation)。
  3. 作成したプロジェクトを選択した状態で、左メニューの「API とサービス」>「ライブラリ」を開きます。
  4. 「Blogger」を検索し、Blogger API v3 を「有効にする」をクリックします。

STEP 2: OAuth 同意画面の設定

ここは「このアプリ(プログラム)の名前は何ですか?」をGoogleに教える工程です。

  1. 「API とサービス」>「OAuth 同意画面」を開きます。
  2. User Type で「外部」を選択し、アプリ名(適当でOK)と自分のメールアドレスを入力して保存します。
    • 注記: ここで入力したメールアドレスは、後の認証画面で「サポート連絡先」として表示されます。自分専用ツールとして使う分には自分にしか見えませんが、気になる場合はその点を理解した上で進めてください。
  3. 重要:テストユーザーの登録: 「テストユーザー」セクションで、「投稿先のBloggerアカウント(メールアドレス)」を必ず追加してください。
    • *※Google Cloudを操作しているアカウントと、Bloggerのアカウントが異なっていても大丈夫です。ここで許可を出しておけば、後でどのアカウントからでもログインできます。* これを忘れると、認証時に「403: access_denied」というエラーで罵倒されることになります。

STEP 3: credentials.json のダウンロード

  1. 「API とサービス」>「認証情報」を開きます。
  2. 「+ 認証情報を作成」>「OAuth クライアント ID」を選択します。
  3. アプリケーションの種類で 「デスクトップ アプリ」 を選び、作成をクリックします。
  4. 表示されたポップアップから「JSON をダウンロード」します。これが credentials.json です。

STEP 4: ライブラリのインストール

最後に、PythonでAPIを扱うための部品をインストールします。


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

2. 最小構成のコード

以下のコードは、認証を行い、ログイン中のユーザーが持っているブログの名前を表示するだけのシンプルなものです。


import os
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

# Blogger APIの操作権限
SCOPES = ['https://www.googleapis.com/auth/blogger']

def get_service():
    creds = None
    # 承認済みトークンがあれば読み込む
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    
    # トークンがない、または無効な場合は再認証
    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)
        # 次回のためにトークンを保存
        with open('token.json', 'w') as token:
            token.write(creds.to_json())

    return build('blogger', 'v3', credentials=creds)

def main():
    service = get_service()
    # ブログ一覧を取得して表示
    blogs = service.blogs().listByUser(userId='self').execute()
    for blog in blogs.get('items', []):
        print(f"Name: {blog['name']}, ID: {blog['id']}")

if __name__ == '__main__':
    main()

3. 実行:ブラウザで「許可」するだけ

上記のコードを credentials.json と同じ場所に置いて実行すると、ブラウザが自動的に立ち上がります。

  1. Bloggerを持っているGoogleアカウントを選択。
  2. 「このアプリを信頼しますか?」といった警告が出た場合は「詳細」から続行(自分で作ったアプリなので安全です)。
  3. 「許可」を押す。

実行完了後、ディレクトリに token.json が生成されます。これ以降はブラウザを開く必要はありません。

4. 【重要】セキュリティの鉄則

今回作成した credentials.json や、自動生成される token.json は、あなたのブログを操作するための「実印」そのものです。

  • 絶対に他人に渡さない: インターネット上の「便利なBlogger管理ツール」などに、自分の credentials.json をアップロードするよう求められたら、それは詐欺(乗っ取り)だと疑ってください。
  • Gitに含めない: 設定ミスでこれらをGitHub等に公開してしまうと、全世界に実印を公開するのと同じです。.gitignore で確実に除外しましょう。
  • 信頼できるアプリだけを承認する: 認証画面で少しでも怪しいと感じたら、承認を中止してください。

まとめ

Blogger APIの攻略は、まずこの「認証を通して1つデータを取ってくる」という土台を作ることから始まります。ここさえ突破できれば、あとは投稿 (posts().insert) も更新 (posts().update) も、自由自在に自動化できます。自分の管理下にある安全な「自分専用ツール」を作って、快適なブログライフを送りましょう。

コメント

コメントは無効になっています。