【自作Pythonコード解説 インデックス削除編②】WordPress REST APIで「401エラー」が出る人へ。パスワードじゃなくて「アプリケーションパスワード」を使え!

本ページはプロモーションが含まれています
国内のAI狂い

みんな〜!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("ユーザー名かアプリケーションパスワードが間違ってるかも?")
国内のAI狂い
💡 管理人の考察

たったこれだけのことなのに、意外と日本語の解説記事が少なくて、私も最初は数時間ドハマりしたんだよね〜💦
「パスワードが違う」ってエラーが出ると、どうしても自分の入力を疑っちゃうけど、そもそも「使う鍵が違った」なんて、初見殺しすぎるよね!(笑)

この「アプリケーションパスワード」を使えば、Pythonで記事投稿も更新も削除も自由自在!
夢の「完全自動化ブログ」目指して、APIを使い倒しちゃおう!Pythonしか勝たん!💖

よかったらシェアしてね!
  • URLをコピーしました!
目次