気づいたらWordPressにもREST APIが実装されていたので、試しに使ってみた。
トークンを取得すればサクッとベーシック認証でリクエストが投げられるようになる。
アプリケーションパスワードの作成
WordPressにログイン後、ユーザー画面に進み、自身のユーザーをクリックする。
プロフィール編集画面下の新しいアプリケーションパスワード名に任意の名前を設定し、新しいアプリケーションパスワードを追加を押下する。
新しいアプリケーションパスワードが発行され、画面上に出力されるので半角スペースも含めどこかに残しておく。
過去に追加したパスワードのパスワード名は一覧で確認することができる。
Access Tokenの取得
取得したパスワードを利用してアクセストークンを作成する。
CUIに移動し以下のコマンドを叩けばアクセストークンが出力される。
echo -n "${name}:${app_pass}" | base64
testというアプリケーションパスワード名を付けた場合はこんな感じ。
$ echo -n "test:rZim EEBn gtaw NnhI VB92 wQFT" | base64
dGVzdDpyWmltIEVFQm4gZ3RhdyBObmhJIFZCOTIgd1FGVA==
CUIからRequestを投げてみる
取得したアクセストークンを使ってリクエストを投げる。
今回はブログに追加してあるプラグイン一覧取得のエンドポイントを叩いてみる。
curl -X GET https://daybydaypg.com/wp-json/wp/v2/plugins -H "Authorization: Basic dGVzdDpyWmltIEVFQm4gZ3RhdyBObmhJIFZCOTIgd1FGVA==" | jq "."
[
{
"plugin": "akismet/akismet",
"status": "active",
"name": "Akismet Anti-Spam (アンチスパム)",
"plugin_uri": "https://akismet.com/",
"author": "Automattic",
"author_uri": "https://automattic.com/wordpress-plugins/",
"description": {
"raw": "何百万もの利用実績がある Akismet は<strong>あなたのブログをスパムから保護する</strong>最良の方法といえるでしょう。あなたが眠りについている時間でさえ、Akismet は常時サイトを守り続けます。始めるのは簡単。Akismet プラグインを有効化したら設定ページで API キーを設定するだけです。",
"rendered": "何百万もの利用実績がある Akismet は<strong>あなたのブログをスパムから保護する</strong>最良の方法といえるでしょう。あなたが眠りについている時間でさえ、Akismet は常時サイトを守り続けます。始めるのは簡単。Akismet プラグインを有効化したら設定ページで API キーを設定するだけです。 <cite>By <a href=\"https://automattic.com/wordpress-plugins/\">Automattic</a>.</cite>"
},
"version": "4.1.3",
"network_only": false,
"requires_wp": "",
"requires_php": "",
"textdomain": "akismet",
"_links": {
"self": [
{
"href": "https://daybydaypg.com/wp-json/wp/v2/plugins/akismet/akismet"
}
]
}
},
{
"plugin": "bbpress/bbpress",
"status": "active",
"name": "bbPress",
"plugin_uri": "https://bbpress.org",
"author": "bbPress コミュニティ",
"author_uri": "https://bbpress.org",
"description": {
"raw": "bbPress は WordPress の開発者たちが作った、ちょっとひねりの効いたフォーラムソフトウェアです。",
"rendered": "bbPress は WordPress の開発者たちが作った、ちょっとひねりの効いたフォーラムソフトウェアです。 <cite>By <a href=\"https://bbpress.org\">bbPress コミュニティ</a>.</cite>"
},
"version": "2.5.14",
"network_only": false,
"requires_wp": "",
"requires_php": "",
"textdomain": "bbpress",
"_links": {
"self": [
{
"href": "https://daybydaypg.com/wp-json/wp/v2/plugins/bbpress/bbpress"
}
]
}
}
]
インストール済みのプラグイン一覧が取得できた。
まとめ
REST APIを使うことでWordPressでのサイトやブログの運用が大分楽になりそう。
独自のendpointも作れるようなので、今後作ってみるかも。
コメント