2012-04-17 4 views
4

私は、DeviseとOmniauthで認証してからソーシャルネットワークアカウントをアプリに接続できるアプリケーションを開発中です。私はWordpressの統合を追加したかったのです(彼らのウェブサイトはOAuth 2.0認証とREST APIへのアクセスをサポートしています)。OAuth 2.0のWordpress戦略

残念ながら、このプロバイダのOmniauth戦略はありませんでした。他のいくつかの宝石を見て、私自身で書くことに決めました - それほど複雑ではありませんでした。 The source code can be found here

私はすべての必要な情報を(Wordpress docsに従って)追加しました。その後、私はアプリIDと秘密を申し込んでいます。私はここで私の最初の問題に遭遇しました - WordpressはのライブパブリックドメインをリダイレクトURIとして要求しました。私は1つ使いたくなかった - 開発モードで最初にテストしたかったので、localhostは私にとっては大丈夫だった。私はダミーのアドレスを入力してから、localhostに戻しました(驚きました!彼らは更新時に作成時に検証しませんでした)。

私は(設定/初期化子/ devise.rb)私の初期化子に資格情報を追加しました:

config.omniauth :wordpress, "my_app_id", "my_app_secret" 

動作するように見えた - 私は私が期待される認証ダイアログを持って、それが自分のアプリケーションを述べました。しかし、「承認」をクリックしてアプリケーションにリダイレクトされたときに、の無効な資格情報であるとエラーが表示されました。

資格情報を確認しましたが、正しくありました(タイプミス、適切な順序)。私はアプリの秘密をリセットしました - 運はありません。私は2つの別のアプリケーションを作成しましたが、まだ何もありません。

私はすでにアイデアが不足しています。このようなエラーを引き起こす原因は何ですか? redirect_uriのローカルアドレスが原因である可能性はありますか?

答えて

2

私はそれが間違っていると思っていました。 WordpressのサーバーはJSON文字列で応答しましたが、応答は1と解釈されませんでした。したがって、Omniauth gemはアクセストークンを見つけられず、資格情報が無効ですエラーが発生しました。正しいコンテンツタイプを設定することは、魅力的に機能しました。

+0

私は同様の問題に直面しています。私はカスタムWordPressのインストールがあります。 OAuth2を使ってWordPressのインストールに接続しようとすると、** Invalid Credentials **エラーが表示されます。コンテンツタイプの設定を手伝ってもらえますか? – sshah