2011-01-20 33 views
8

Tôi đang cố gắng thực hiện xác thực facebook cho một ứng dụng với quản trị viên, sau khi người dùng cho phép auth facebook và chuyển hướng đến ứng dụng gọi lại của tôi với mã thông báo tôi nhận được 400 trong khi tiêu thụ api. chiến lược cai ngục của tôi là thế này:"Lỗi xác thực bí mật của khách hàng". 404 với Facebook Oauth và 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 

Kết quả của việc in ấn cơ thể phản ứng là:

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

Tôi khá shure id ứng dụng và bí mật ứng dụng là những người được cung cấp bởi FB.

Cảm ơn.

Trả lời

18

Tôi đã nhìn thấy thông báo lỗi đó nhiều lần. Dưới đây là những điều tôi sẽ kiểm tra lại:

  • miền của bạn cũng giống như những gì bạn được liệt kê trong url facebook callback
  • id ứng dụng là chính xác (thực sự in này ra trên một trang, đôi khi y
  • bí mật ứng dụng là chính xác
+2

Đối với tôi, nó đã sử dụng tên biến sai từ tệp cấu hình của tôi: - / –

Các vấn đề liên quan