はてなアカウントのOAuth認証を行いはてなブログへ自動投稿するための簡単なスクリプト。
hatenablog_poster.py- メイン投稿スクリプトtoken_request.py- OAuth認証フロー.env.sample- 環境変数テンプレート
- Python 3.10以上
requests-oauthlibpython-dotenv
- セットアップ完了後、
hatenablog_poster.pyから関数をインポートして使用:
from hatenablog_poster import blog_post
result = blog_post(
title="記事タイトル",
content="記事本文",
categories=["カテゴリ1", "カテゴリ2"],
is_draft=False,
)
print(result["link_alternate"]) # 投稿URLを表示
print(result["link_edit_user"]) # 編集用URLを表示pip install -r requirements.txtConsumer KeyとConsumer Secretを取得:
- https://developer.hatena.ne.jp/ja/documents/auth/apis/oauth/consumer を参照
.envを作成し以下を設定:
HATENA_CONSUMER_KEY=Your_consumer_key
HATENA_CONSUMER_SECRET=Your_consumer_secret投稿用エンドポイントを作成・.envで設定:
HATENA_ENTRY_URL=https://blog.hatena.ne.jp/{あなたのはてなID}/{あなたのブログID}/atom/entrypython token_request.py- ターミナルに表示されたURLをブラウザで開く
- はてなでOAuth認証を完了
- 表示される認証キーをターミナルに入力
- 取得したトークンを
.envに追記:
HATENA_ACCESS_TOKEN=your_access_token
HATENA_ACCESS_TOKEN_SECRET=your_access_token_secret- 上記手順後
hatenablog_poster.pyを実行。表示されるURLへアクセス。投稿を確認します。
python hatenablog_poster.py- 本文のデフォルトはマークダウン記法
- ただし、マークダウンの内容を正しく表示させるには、予めはてな側の設定で記法を選択しておくことが必要です。
xml_unparser()- 投稿データをAtom形式のXMLに変換hatena_oauth()- OAuth1認証でAPIリクエスト送信parse_response()- はてなからのレスポンスを解析- 投稿結果を辞書で返却
MIT License