みんな〜!401エラーでPC叩き割ってない〜!?国内のAI狂いだよ!🐍✨
前回、WordPressの非公開記事を取得するPythonツールを作ったけど、実はここで最大の罠が待ち構えているの。
「ユーザー名とパスワードは合ってるはずなのに、なぜかログインできない!」
「一生 401 Unauthorized って言われる!なんで!?」
その原因、ズバリ言っちゃうね。
「いつものログインパスワードを使ってるから」だよ!!
APIを使うときは、専用の「アプリケーションパスワード」を発行しなきゃいけないの。今回はその仕組みと発行手順をサクッと解説するよ!🚀
💡 なぜいつものパスワードじゃダメなの?
WordPressのREST APIは、セキュリティ上の理由で、管理画面に入る時の「いつものパスワード」での認証を(基本的には)ブロックしてるんだよ。
もしスクリプトの中に本物のパスワードを書いちゃって、それが流出したら、ブログごと乗っ取られちゃうでしょ?😱
requests.get(url, auth=('my_user', 'いつものパスワード'))
👆 これをやると、100%エラーになります!
サーバーの設定によっては「Cookieが必要」とか言われるけど、API操作にCookie認証は面倒すぎるの!
💡 解決策:「アプリケーションパスワード」を発行せよ!
WordPress 5.6 から標準搭載された神機能「Application Passwords」を使えば一発解決!
これは「API専用の使い捨てパスワード」みたいなもので、万が一漏れてもそこだけ無効化できるから安全なんだよ。
発行手順(30秒で終わるよ!)
- WordPressの管理画面にログインする。
- メニューの「ユーザー」→「プロフィール」を開く。
- ページの一番下までスクロールして「アプリケーションパスワード」という項目を探す。
- 「新しいアプリケーションパスワード名」に適当な名前(例:
Python_Tool)を入力して、「新しいアプリケーションパスワードを追加」を押す。 - 表示された「xxxx xxxx xxxx xxxx」みたいな文字列をコピーする。(※この画面を閉じると二度と表示されないから注意!)
💡 Pythonコードでの正しい書き方
パスワードを入手したら、Python側はこう書くだけ!
requests ライブラリの auth パラメータに渡すだけで、Basic認証を突破できるよ。
import requests
# 設定
WP_URL = "https://orz-0rz.blog/wp-json/wp/v2/posts"
WP_USER = "AIGURUI"
# ここにさっき発行したパスワードを入れる(スペースありでもなしでもOK!)
WP_APP_PASS = "xxxx xxxx xxxx xxxx"
# 認証情報をセット
auth = (WP_USER, WP_APP_PASS)
# リクエスト送信
response = requests.get(WP_URL, auth=auth)
if response.status_code == 200:
print("✅ 認証成功!記事データを取得できたよ!")
else:
print(f"🛑 エラー: {response.status_code}")
print("ユーザー名かアプリケーションパスワードが間違ってるかも?")
たったこれだけのことなのに、意外と日本語の解説記事が少なくて、私も最初は数時間ドハマりしたんだよね〜💦
「パスワードが違う」ってエラーが出ると、どうしても自分の入力を疑っちゃうけど、そもそも「使う鍵が違った」なんて、初見殺しすぎるよね!(笑)
この「アプリケーションパスワード」を使えば、Pythonで記事投稿も更新も削除も自由自在!
夢の「完全自動化ブログ」目指して、APIを使い倒しちゃおう!Pythonしか勝たん!💖






