2011-01-20 39 views
8

我試圖實現與認證的應用程序的Facebook認證,用戶允許Facebook認證後,重定向到我的應用程序回調與令牌我得到一個400,同時消費的API。我監獄長策略是這樣的:「驗證客戶端密碼時出錯。」 404與Facebook Oauth和紅寶石

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和應用程序的祕密是由FB提供的。

感謝。

回答

18

我已經多次看到該錯誤消息。這裏有事情,我會仔細檢查:

  • 您的域名是一樣的你在facebook的回調URL
  • 的應用程序ID是正確的上市(實際上在頁面上打印出來,有時ÿ
  • 應用程序的祕密是正確的
+2

對我來說,它是從我的配置文件中使用了錯誤的變量名: - / – 2016-02-19 22:32:03