質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

0回答

295閲覧

Wordpress REST API で 'No OAuth parameters supplied'とでる

hrc

総合スコア55

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

OAuth

OAuth(Open Authorization)は、APIを通して保護されたリソース(サードパーティのアプリケーション)へアクセスする為のオープンプロトコルです。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2018/10/24 02:02

RailsアプリからWordPressのREST APIにアクセスしようとしています。全データの取得を考えているのでOAuthを使う必要があるのですが、どこ探してもサンプルが見つかりません。
oauth-xx/oauth-rubyのGemを使って以下のようなコードを書いてみましたが、'No OAuth parameters supplied'というメッセージがデバッグログに表示されます。

ruby

1 @consumer = OAuth::Consumer.new( 2 'Client Key', 3 'Client Secret', 4 {:site => 'http://our-wordpresssite.com', 5 :request_token_path => '/oauth1/request', 6 :access_token_path => '/oauth1/authorize', 7 :authorize_path => '/oauth1/access', 8 :debug_output => true}) 9 10 @request_token = @consumer.get_request_token 11 session[:token] = request_token.token 12 session[:token_secret] = request_token.secret 13 redirect_to @request_token.authorize_url(:oauth_callback => @callback_url) 14

デバッグログは以下のとおりです。

bash

1opening connection to dev-style.vegewel.com:80... 2opened 3<- "POST /oauth1/request HTTP/1.1\r\nAccept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3\r\nAccept: */*\r\nUser-Agent: OAuth gem v0.5.4\r\nContent-Length: 0\r\nAuthorization: OAuth oauth_callback=\"oob\", oauth_consumer_key=\"vS1LY0Gvouif\", oauth_nonce=\"xxxxx\", oauth_signature=\"2%xxxxx%2BjphX1CCY4%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1540327228\", oauth_version=\"1.0\"\r\nConnection: close\r\nHost: dev-style.vegewel.com\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n" 4<- "" 5-> "HTTP/1.1 400 Bad Request\r\n" 6-> "Server: nginx\r\n" 7-> "Date: Tue, 23 Oct 2018 20:40:30 GMT\r\n" 8-> "Content-Type: text/html; charset=UTF-8\r\n" 9-> "Content-Length: 28\r\n" 10-> "Connection: close\r\n" 11-> "X-Powered-By: PHP/5.6.38\r\n" 12-> "X-UA-Compatible: IE=edge\r\n" 13-> "Access-Control-Allow-Headers: Authorization\r\n" 14-> "Set-Cookie: pll_language=en; expires=Wed, 23-Oct-2019 20:40:30 GMT; Max-Age=31536000; path=/\r\n" 15-> "\r\n" 16reading 28 bytes... 17-> "No OAuth parameters supplied" 18read 28 bytes 19Conn close 20Completed 500 Internal Server Error in 2626ms (ActiveRecord: 27.3ms) 21400 Bad Request excluded from capture: Not configured to send/capture in environment 'development' 22 23OAuth::Unauthorized (400 Bad Request): 24 app/controllers/style/posts_controller.rb:17:in `index' 25This is Wordpress WP REST API - OAuth 1.0a Server settings.

ちなみにClient KeyとClient Secretは以下の画面から取得しています。
WP

コケている場所はAccessTokenを取得する箇所ですが、
何が問題でどのように対応すればいいかがわかりません。
どなたかお分かりになる方いましたらよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/10/24 08:32 編集

WordPress 標準の REST API でしょうか? WordPress REST API は、標準だと Basic 認証ですが、OAuth は、なにかプラグインを入れていますか?  お使いの WordPress についての情報を追加してください。 Version / テーマ / プラグイン 等。
hrc

2018/10/24 14:07

ありがとうございます!全記事をAPIで抽出したいのですが、通常は10件ずつしか出せずOAuth認証が必要というのをどこかで読んだので探しております。プラグインはWordPress REST API – OAuth 1.0a Serverを使っています。もしかしてBasic認証で全記事取得とかできますかね?
CHERRY

2018/10/24 14:27

REST API では、1回 100件までだったと思います。それ以上取得したい場合は、複数回に分けてリクエストを行う必要があります。 これは、Basic 認証でも OAuth でも同じだったと思います。
hrc

2018/10/24 14:54

100件ずつ取っていく方法なら認証なしでもできましたよね?Basic認証は開発環境用というイメージでしたが・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問