Я пытаюсь реализовать аутентификацию facebook для приложения с надзирателем, после того как пользователь разрешает аутентификацию facebook и перенаправляет на обратный вызов моего приложения с токеном, я получаю 400, потребляя api. Моя стратегия надзирателя такова:
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."}}
Я довольно уверен, что идентификатор приложения и секрет приложения - это те, которые предоставляются FB.
Спасибо.