WP REST APIのOAuth1.0a認証用のアクセストークン取得プラグインを作った

公開日: : Web Technology, wordpress , ,

WP REST APIでOAuth1.0の認証を使ったアクセストークンを取得するプラグインを作りました。

前置き

WP REST APIでは記事の取得などのGET系はURLさえ知っていればだれでもアクセスが可能です。
しかしもちろん、新規投稿や更新などの作業をAPI経由で行うには認証が必要となります。

その認証方法には3種類あり、そのうちの一つにOAuthを使用した3者間認証があります。
このOAuth認証を使用してアクセストークンを取得する必要があったので、そのコードをプラグイン化してみました。
(普通ではそんな事をするシチュエーションはまずないと思いますが)

注意

使用しているWP REST APIはベータ版となっており、使用には注意が必要です。

重要: ベータ1は、将来のバージョンで互換性が保障されているわけではありません。公にテストを行うには十分な信頼性があると考えていますが、さらに改善するために互換性がなくなるかもしれません。バージョン2は、本番環境では使用しないで開発環境においてのみ使用してください。
http://ja.wp-api.org/changes-beta-1.html

また、アクセストークンを固定にしてのアクセスはセキュリティのリスクが発生しやすくなると思います。
さらにアクセストークンには有効期限がある場合がありますので注意して下さい。

参考情報

認証の方法などは他のブログになりますが、記述しましたので、以下を参考にしてみてください。

完成したプラグイン

完成したプラグインが以下です。

k-usk/oauth1_get_accesstoken

インストール

インストール方法は以下です。

  1. このリポジトリをzipでダウンロードします
  2. WordPressのプラグイン画面から、新規追加をクリックします
  3. プラグインのアップロードから1でダウンロードしたzipを選択します
  4. 自動で展開されインストールされます
  5. 有効化します

事前準備

WordPressのセットアップ

WP REST API

WordPress REST API (Version 2) — WordPress Plugins
プラグインの新規追加から検索すれば出てくるので、そこからインストールして、有効化します。

WP REST API – OAuth 1.0a Server

WP-API/OAuth1: OAuth server implementation for WP API
今回のプラグインと同じく、zipをダウンロードしてインストールします。その後、有効化しておきます。

ユーザー項目に、 Applicatons が増えていれば正しく有効化出来ています。
また、WP REST APIを追加していれば、 /wp-json/ にアクセスした際にOAuth認証するためのURLが表示されるようになります。

アプリケーションの追加

ユーザー -> Applications を開き、 Add Application をクリック。それぞれの項目を適当に入力する。 Callback は使用しないが必須となるため、適当な値を入力しておきます。
Add Consumer をクリックすると Client KeyClient Secret が生成されます。
後で使用するため、この値をコピーするなどしてメモしておきます。

wp_oauth01

PHPのセットアップ

このプラグインでは、OAuth認証に、OAuthライブラリを使用しています。
そのため、サーバーにPECLでOAuthライブラリをインストールしておきます。

インストール方法は以下などを参考にしてください。

PECL/oauthの導入方法 | 配電盤

phpinfoでOAuthが表示されていればインストールが出来ています。

wp_oauth02

使用方法

さて、ここまで準備が出来たらいよいよプラグインを使用してアクセストークンを取得します。

プラグインをインストールし有効化していると、ユーザーのサブメニューに、 Get Accesstoken が追加されていますのでそれをクリックします。
ここでまずは、事前準備でコピーした、 Client KeyClient Secret を入力します。

readme01

直下のSubmitで送信すると、アプリケーションを承認するページヘ遷移します。

readme03

Authorizeをクリックすると、 verification token が表示されるので、コピーするなどしてメモしておきます。

readme04

コピーした verification token を、プラグインの設定画面から入力します。

readme02

直下のSubmit(二つ目)で送信すると、アクセストークンが表示されます。

readme05

これで無事アクセストークンが取得できました。
このアクセストークンは1度しか表示されませんので、忘れた場合などは再度取得し直して下さい。
また、一度使用した、 verification token は使用出来ませんので注意して下さい。

参考

ad

ad

ad

PAGE TOP ↑