WordPress REST API+アプリパスワードで記事を自動投稿する仕組み

実務ノウハウ・事例 のアイキャッチ

当メディアの記事は、AIが書いた下書きをWordPressに自動保存する仕組みで動いています。その心臓部が「WordPress REST API+アプリケーションパスワード」。プラグイン不要・WordPress標準の機能だけで、外部プログラムから安全に投稿できます。仕組みと注意点をまとめます。

WordPress REST APIで自動投稿

アプリケーションパスワードとは

WordPress REST API に外部から安全にアクセスするための、WordPress標準(5.6以降)の仕組みです。管理画面の「ユーザー → プロフィール → アプリケーションパスワード」で発行します。

  • ログインパスワードとは別の専用パスワード(用途ごとに発行・失効できる)
  • 発行時に一度だけ表示されるのでその場で控える
  • 本来のアカウントパスワードを渡さずに済むので安全
laptop blogging workspace writing
Photo: masuidrive76 / CC BY 2.0(Openverse経由)

Basic認証で投稿する

HTTPS経由のBasic認証(ユーザー名:アプリパスワード)で、POSTするだけです。

curl -X POST "https://example.com/wp-json/wp/v2/posts" \
  -u "USER:xxxx xxxx xxxx xxxx xxxx xxxx" \
  -H "Content-Type: application/json" \
  -d '{"title":"テスト投稿","content":"本文","status":"draft"}'

当メディアでは status を必ず draft(下書き)にして、公開は人がレビューしてから行っています。

投稿ステータスの使い分け

status 挙動
draft 下書き保存(公開しない)
publish 即時公開
future 予約投稿(date を併せて指定)
pending 承認待ち(レビュー回し)

よくあるエラーと対策

  • 401 rest_cannot_create(投稿権限がない):ログインパスワードではなくアプリパスワードを使う。ユーザーの権限(投稿可能か)も確認。
  • 必ず HTTPS で通信する(Basic認証のため)。
  • 一部のホスティングやWordPress.comでは制限がある場合がある。

セキュリティの勘どころ

  • アプリパスワードをクライアント側コードに直書きしない。サーバー側/環境変数で扱う。
  • 運用が安定したら、投稿専用の最小権限アカウントに切り替えると安全。
  • 不要になったアプリパスワードは管理画面から失効させる。

当メディアの構成

Claudeが毎朝ニュースを収集→自分の言葉で要約→この REST API で下書きとして保存。公開判断は人が行う、という分担です。


主な情報源

各サービスは提供元の規約に従ってご利用ください。情報は各情報源の公開時点のものです。収集・要約はAI、公開判断は人。