facebook_oauth (https://github.com/moomerman/facebook_oauth) rails. , , , oauth2 . , . :
Gemfile
gem 'oauth2'
bundle update
login_via_facebook uri , oauth-, - :
oauth_client = OAuth2::Client.new(APPLICATION_ID, APPLICATION_SECRET, {
:authorize_url => 'https://www.facebook.com/dialog/oauth'
})
redirect_to oauth_client.authorize_url({
:client_id => APPLICATION_ID,
:redirect_uri => YOUR_REDIRECT_URL
})
, scope param authorize_url:
redirect_to oauth_client.authorize_url({
:client_id => APPLICATION_ID,
:redirect_uri => YOUR_REDIRECT_URL,
:scope => 'offline_access,email'
})
, YOUR_REDIRECT_URL ( login_via_facebook_callback), - :
oauth_client = OAuth2::Client.new(APPLICATION_ID, APPLICATION_SECRET, {
:site => 'https://graph.facebook.com',
:token_url => '/oauth/access_token'
})
begin
access_token = oauth_client.get_token({
:client_id => APPLICATION_ID,
:client_secret => APPLICATION_SECRET,
:redirect_uri => YOUR_REDIRECT_URL,
:code => params[:code],
:parse => :query
})
access_token.options[:mode] = :query
access_token.options[:param_name] = :access_token
facebook_user_info = access_token.get('/me', {:parse => :json}).parsed
rescue Error => e
end
facebook_user_info !