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

アプリケーションパスワードとは
WordPress REST API に外部から安全にアクセスするための、WordPress標準(5.6以降)の仕組みです。管理画面の「ユーザー → プロフィール → アプリケーションパスワード」で発行します。
- ログインパスワードとは別の専用パスワード(用途ごとに発行・失効できる)
- 発行時に一度だけ表示されるのでその場で控える
- 本来のアカウントパスワードを渡さずに済むので安全

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、公開判断は人。