Я пытаюсь реализовать проверку подлинности facebook для приложения с помощью warden, после того как пользователь разрешил авторизацию 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.
Спасибо.