2011-01-20 14 views
8

ユーザーがfacebookの認証を許可し、トークンを使ってアプリケーションコールバックにリダイレクトした後、wardenのあるアプリケーションでfacebook認証を実装しようとしていますが、apiを消費しています。私の看守の戦略はこれです:"クライアントの秘密の検証でエラーが発生しました。 404 with Facebook Oauth and ruby​​

class Facebook < Warden::Strategies::Base 
    def client 
    @client ||= OAuth2::Client.new MyApp::Facebook::AppID, MyApp::Facebook::AppSecret, :site => 'https://graph.facebook.com' 
    end 

    def params 
    @params ||= Rack::Utils.parse_query(request.query_string) 
    end 

    def authorize_url 
    client.web_server.authorize_url :redirect_uri => request.url, :scope => 'email,publish_stream' 
    end 

    def authenticate! 
    throw(:halt, [302, {'Location' => authorize_url}, []]) unless params['code'] 
    facebook = client.web_server.get_access_token params['code'], :redirect_uri => request.url 
    rescue OAuth2::HTTPError => e 
    puts e.response.body 
    end 
end 

Strategies.add :facebook, Facebook 

レスポンスボディを印刷した結果がこれです:

{"error":{"type":"OAuthException","message":"Error validating client secret."}} 

私はかなりのアプリIDとアプリの秘密をSHUREいFBが提供するものです。

ありがとうございました。

答えて

18

私はこのエラーメッセージを何度も見ました。ここで私は倍増するものをチェックしている:

  • ドメインはあなたがFacebookのコールバックURL
  • アプリIDが正しいに記載されているものと同じであるが(実際には、ページ上で時々Y
  • これをプリントアウト
  • アプリの秘密が正しいです
+2

私の設定ファイルの間違った変数名を使用していました: - / –

関連する問題