Webエンジニアが書く備忘録・技術ブログ


WordPressのREST APIとPostmanを使って記事を投稿する検証


WordPressのREST APIとPostmanを使って記事を投稿する検証
この記事はアフィリエイト広告を利用しています。

WordPress REST APIを使用した記事投稿の検証を行いました。
本記事では、Postmanを使用して外部からWordPressへ「下書き」を流し込むための設定と、ブロックエディタ(Gutenberg)を正常に認識させるためのコツをまとめて紹介します。

事前準備

外部からのリクエストを安全に受け付けるため、以下の設定を行います。

API投稿用のユーザーを作成

  1. 安全のために、API経由で投稿する用のユーザーを 「投稿者」権限で作成します。
    • 寄稿者権限でも良いと思いますが、メディアへのアップロードができないため注意が必要です。
  2. アプリケーションパスワードの発行
    • 作成したユーザーでログインし、[ユーザー] > [プロフィール] から、API連携専用のパスワード(24文字)を発行し控えておきます。
Warning

セキュリティプラグインが有効になっているとアプリケーションパスワードを作成できない場合があるので、お使いのプラグインの設定を確認してください。

サーバー側のセキュリティ見直し

レンタルサーバーを使用していると、REST APIアクセスを制限するセキュリティが有効になっている場合があります。
有効になっていると次の項目で行う投稿テストで 403 Forbidden などのエラーになる可能性があります。
お使いのサーバー管理画面にログインし、該当のセキュリティが有効になっていないか確認してください。

Warning

REST APIアクセスを制限するセキュリティを無効にすることは外部からの攻撃に弱くなるため本来推奨されません。
実際運用する際にはリクエスト元のIPで許可するなどで安全に運用するようにしてください。

Postmanによる投稿テスト

Postmanにアクセスしログインします。(アカウントを持っていない方は新規作成してください。)

Workspaceを選択し、今回の検証用コレクションを作成します。

認証認可の設定

コレクションの設定から認可タブで認証情報を入力します。

認証方式に Basic 認証 を選択し、先ほど作成したユーザー名とアプリケーションパスワードを入力してください。

投稿テストを実行

新しくPOSTリクエストを作成し、以下のようにエンドポイントを設定します。

  • Endpoint: https://[WordPressのドメイン]/wp-json/wp/v2/posts
  • Method: POST

[ボディ] > [Raw] を選択し、以下のサンプルJSONを入力して送信テストを行います。

{
    "title": "APIによるブロック投稿テスト",
    "content": "<!-- wp:paragraph --><p>これはAPI経由で投稿された段落です。</p><!-- /wp:paragraph -->",
    "status": "draft"
}
Information

単なるHTMLを投げると「クラシックブロック」として認識されてしまいます。
<!-- wp:paragraph --> のようなコメントアウトを入れることで段落ブロックとして認識されます。

プラグインなどで追加されたブロックはそれ用のコメント記述があります。

まとめ

ハマりポイントとして、セキュリティ周りの設定さえ気をつければ、REST APIを使った記事投稿の検証としては完了です。
各ブロックのコメントの記述方法を理解できれば、投稿後の編集も問題なく可能となります。


PAGE TOP