class SimpleApiKeyEngine::Providers::FacebookProvider
Public Class Methods
acceptable?(request)
click to toggle source
# File lib/simpleapikeyengine/providers/facebook_provider.rb, line 7 def self.acceptable?(request) request.params['provider'] == 'facebook' end
Public Instance Methods
client()
click to toggle source
# File lib/simpleapikeyengine/providers/facebook_provider.rb, line 11 def client @oauth ||= Koala::Facebook::OAuth.new(SimpleApiKeyEngine.configuration.facebook_app_id, SimpleApiKeyEngine.configuration.facebook_app_secret) end
get_auth_hash!()
click to toggle source
# File lib/simpleapikeyengine/providers/facebook_provider.rb, line 16 def get_auth_hash! res = client.parse_signed_request(@params['signed_request']) short_token = client.get_access_token(res['code']) graph = Koala::Facebook::API.new(short_token) user_info = graph.get_object('me') new_token = client.exchange_access_token_info(short_token) if new_token['expires'].to_i > 0 expires_at = (Time.now.to_i + new_token['expires'].to_i).to_i expires = true else expires_at = nil expires = false end { provider: @params['provider'], uid: user_info['id'], credentials: { token: new_token['access_token'], expires_at: expires_at, expires: expires }, info: { email: user_info['email'], name: user_info['name'], description: user_info['bio'] }, extra: { raw_info: user_info.to_h } } end