ブログの更新を自動化したい、あるいは自分の書いたプログラムと連携させたいと考えたとき、強い味方になるのが「Blogger API」です。
Googleが提供するこのAPIを使えば、記事の投稿、修正、削除、さらにはコメントの管理まで、あらゆる操作をプログラムから自動で行うことができます。しかし、いざ使おうと公式ドキュメントを開くと、多機能すぎて「どこから手をつければいいのか分からない」という壁にぶつかりがちです。
そこで今回は、高機能な部分は一旦脇に置き、「まずはPythonでBloggerに接続して、自分のブログ情報を取得する」という最もシンプルな最小構成の手順を解説します。
1. 準備:3つの「神器」を揃える
APIを使うためには、プログラムに「権限」を与える必要があります。そのために必要なのが以下の3つです。
中でも重要なのが credentials.json です。これは、Googleがプログラムに対して発行する「限定的な身分証明書」のようなものです。APIキー(ただの文字列)と違い、特定のユーザーのブログを操作するための強力な許可証の素になります。
では、これを取得するための具体的な手順を見ていきましょう。
STEP 1: Google Cloud プロジェクトの作成
- Google Cloud Console にアクセスします。
- 画面上部のプロジェクト名をクリックし、「新しいプロジェクト」を作成します(例:
my-blogger-automation)。 - 作成したプロジェクトを選択した状態で、左メニューの「API とサービス」>「ライブラリ」を開きます。
- 「Blogger」を検索し、Blogger API v3 を「有効にする」をクリックします。
STEP 2: OAuth 同意画面の設定
ここは「このアプリ(プログラム)の名前は何ですか?」をGoogleに教える工程です。
- 「API とサービス」>「OAuth 同意画面」を開きます。
- User Type で「外部」を選択し、アプリ名(適当でOK)と自分のメールアドレスを入力して保存します。
- 注記: ここで入力したメールアドレスは、後の認証画面で「サポート連絡先」として表示されます。自分専用ツールとして使う分には自分にしか見えませんが、気になる場合はその点を理解した上で進めてください。
- 重要:テストユーザーの登録:
「テストユーザー」セクションで、「投稿先のBloggerアカウント(メールアドレス)」を必ず追加してください。
- *※Google Cloudを操作しているアカウントと、Bloggerのアカウントが異なっていても大丈夫です。ここで許可を出しておけば、後でどのアカウントからでもログインできます。* これを忘れると、認証時に「403: access_denied」というエラーで罵倒されることになります。
STEP 3: credentials.json のダウンロード
- 「API とサービス」>「認証情報」を開きます。
- 「+ 認証情報を作成」>「OAuth クライアント ID」を選択します。
- アプリケーションの種類で 「デスクトップ アプリ」 を選び、作成をクリックします。
- 表示されたポップアップから「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 と同じ場所に置いて実行すると、ブラウザが自動的に立ち上がります。
- Bloggerを持っているGoogleアカウントを選択。
- 「このアプリを信頼しますか?」といった警告が出た場合は「詳細」から続行(自分で作ったアプリなので安全です)。
- 「許可」を押す。
実行完了後、ディレクトリに token.json が生成されます。これ以降はブラウザを開く必要はありません。
4. 【重要】セキュリティの鉄則
今回作成した credentials.json や、自動生成される token.json は、あなたのブログを操作するための「実印」そのものです。
- 絶対に他人に渡さない: インターネット上の「便利なBlogger管理ツール」などに、自分の
credentials.jsonをアップロードするよう求められたら、それは詐欺(乗っ取り)だと疑ってください。 - Gitに含めない: 設定ミスでこれらをGitHub等に公開してしまうと、全世界に実印を公開するのと同じです。
.gitignoreで確実に除外しましょう。 - 信頼できるアプリだけを承認する: 認証画面で少しでも怪しいと感じたら、承認を中止してください。
まとめ
Blogger APIの攻略は、まずこの「認証を通して1つデータを取ってくる」という土台を作ることから始まります。ここさえ突破できれば、あとは投稿 (posts().insert) も更新 (posts().update) も、自由自在に自動化できます。自分の管理下にある安全な「自分専用ツール」を作って、快適なブログライフを送りましょう。
コメント
コメントは無効になっています。