WP REST API の OAuth 認証の方法と何が起こっているのかとなぜそんなことをしているのか

ウェブアプリ、スマホアプリなどの外部のアプリケーションから WP REST API を利用して WordPress のデータを更新などするために必要になる OAuth 認証の方法について。何が起こっているのか、なぜそんなことをしているのかを丁寧に調べてみたレポートです。

OAuth認証やってまいります。

WP REST API の OAuth 認証用のプラグインの github レポジトリのドキュメントのフローの通り進めます。また、リクエストの送信には、Paw という Mac アプリを利用します。

この記事自体の中に上記のドキュメントで伝えられていることを逐次翻訳して残しておこうと思います。上記のドキュメントは読まなくても大丈夫になるように頑張ります。間違いがあったら、 @shinichiN へお願いします。

STEP 0: Client Key と Client Secret を作成する

ドキュメントサイトの方には「OAuth のプラグインにUIはありません。そのうち作ります」などと書かれておりましたが、実際にはありました。

WP REST API の OAuth プラグインのアプリケーション作成画面
WP REST API の OAuth プラグインが提供するアプリケーション作成画面

wp-cli を利用して $ wp oauth1 add みたいなことをしないといけない、とドキュメントサイトにはありますが、管理画面でできました。

というわけでさっそく作っていきましょう。

コンシューマを作ってみました。
コンシューマを作ってみました。

NameDescription は管理用のものだと思われますので適当に入れます。Callback URL はよく分からないですが必須なので /success としました。

Client Key と Client Secret をメモしておきましょう。

OAuth フローの概要と、その意義

OAuth1/Auth-Flow.md at master · WP-API/OAuth1 にある OAuth 認証のフローを翻訳します。クライアント側から見ると、3つのフローに分かれています。

“WP REST API の OAuth 認証の方法と何が起こっているのかとなぜそんなことをしているのか”の続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

習うより慣れろ。WP API にリクエストをいっぱい投げる。& REST クライアント “Paw” が超便利。

WP REST API サイトの主要なページをじっくり読んだところで、次は習うより慣れろということで、リクエストいっぱいしてみて、レスポンスをじっくり見てみよう、という趣向で進めてみたいと思います。

前提として、以下の記事を読んでおくと、話がよく分かると思います。

また作業にあたり、Mさんこと @miya0001 さんから Paw – The ultimate REST client for Mac という、REST クライアントを紹介してもらいましたので使ってみました。

スクリーンショット 2016-01-03 10.34.36

Paw is a full-featured and beautifully designed Mac app that makes interaction with REST services delightful. Whether you are an API maker or consumer, Paw helps you build HTTP requests, inspect the server’s response and even generate client code.

Paw は機能フル装備の美しい Mac 用アプリで、REST サービスとのインタラクションを快適にします。API を開発するひとにとっても、使う人にとっても、HTTP リクエストをビルドしたり、サーバからのレスポンスを詳しく見てみたり、さらにはクライアントコードを生成してみたりするのに便利です。

いやー、実を言いますと httpie はとっても手軽なんですけど長い json がどわーっと来ると目的の key を探したりするのが不便で困っていたんです。手元でパッとテストするにはとてもいいのですが、使い分けですね。

ということで、

  • エンドポイントやリクエスト内容を整理して保存
  • レスポンスを綺麗に見る
  • 自分が何をやっているのか見て分かるようになる

ということのためによさそうです。まずは30日間の Trial ができるということです。

インストールするとこんな感じで、

Paw の初期画面
Paw の初期画面
  • アクションを選び、
  • URL を入れて
  • パラメータを指定する

ための画面が出てきました。とりあえず、

というのをやってみます。

Paw では認証関連もサポートしているようなので、次回以降は以下の作業もやってみます。

  • 認証をしてみる(参考: WP REST API のドキュメントの認証ページの翻訳)
    • まず Basic 認証を
    • 次に OAuth 認証を

“習うより慣れろ。WP API にリクエストをいっぱい投げる。& REST クライアント “Paw” が超便利。”の続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

WP REST API ドキュメント Discovery

Discovery | WP REST API v2 Documentation の翻訳です。

Discovery 発見/探索

未知のサイトにアクセスする際、そのサイトでは何が可能でどのように設定されているのかを知る必要があります。何を知りたいのかによりますが、幾つかのステップで探索することができます。

“WP REST API ドキュメント Discovery”の続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

WP REST API のドキュメントの認証ページの翻訳

前回の用語集の翻訳に続きまして、認証のページも翻訳してみました。以下翻訳。

認証

このAPIにおいては、認証には2つの選択肢があり、基本的に以下のように選びましょう。

  • そのサイトで有効化されたテーマやプラグインから利用する -> クッキー認証
  • デスクトップアプリ、ウェブアプリ、モバイルアプリなどのサイトの外からアクセスするクライアントとして API を利用する -> OAuth 認証

“WP REST API のドキュメントの認証ページの翻訳”の続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

WP REST API のドキュメント内の用語集を簡単に翻訳する

WP REST API の公式のドキュメンテーションサイトにある用語集を翻訳してみました。コントローラ、HEAD, GET, POST, PUT, DELETE、HTTP Client、Resource、Routes、Endpoints、Schemaの項目があります。

Glossary | WP REST API v2 Documentation は WordPress JSON REST API の用語集となっておりまして、ここを翻訳してみたいと思います。

時期が来たら日本語のコデックスに移動したらいいかな?と思うけど日本語の使い方が難しいので困っちゃうな。ちゃんとやろうとするとすごく時間がかかってしまうので。。。

以下、翻訳です。

“WP REST API のドキュメント内の用語集を簡単に翻訳する”の続きを読む

↓ プラグインを作る方々への本、書きました。 ↓