WP REST APIとOAuth Serverを入れたWordPressに対してSinatraとOAuth gemを使って記事をPOSTして公開するところまで試してハマったところは以下3点。
1)
プラグインは、git cloneで配置する。管理画面から検索してインストールしない方が良い。
oauth_signatureを生成する際に、Ruby側ではnestされたハッシュは2重にurlエンコードしているがプラグイン側ではしておらず値がマッチしない等の問題があったが今は動いている。
$ git clone git@github.com:WP-API/WP-API.git
$ git clone git@github.com:WP-API/OAuth1.git
2)
認証のコールバック時に、wp_http_validate_url を実行してコールバックURLをチェックしている箇所があるので、許可するホストを指定しておかないといけない。
指定していないと”The callback URL is invalid”が表示される。
functions.phpに
add\_filter(‘http\_request\_host\_is\_external’, ‘allow\_my\_custom\_host’, 10, 3);
function allow\_my\_custom_host($allow, $host, $url) {
if ($host == ‘\***\****’) $allow = true;
return $allow;
}
を追加する。
***は、ホストのURLを入れる
3)
NginxでWP-APIを動かす場合には、confファイルの設定は以下を参考にする。
confファイルがこれとは違う内容だったのでこれに合わせた。パラメータの受け渡しなどがうまくいっていなかった。
http://wpdocs.sourceforge.jp/Nginx