class ApiUserAuth::Providers::Facebook
Get info from Facebook
token
Constants
- API_PATH
- FIELDS
Public Class Methods
get_user(token)
click to toggle source
# File lib/api_user_auth/providers/facebook.rb, line 43 def self.get_user(token) fb = Facebook.new(token) fb.get_user_data end
new(token)
click to toggle source
# File lib/api_user_auth/providers/facebook.rb, line 10 def initialize(token) @token = token @data = {} end
Public Instance Methods
api_info_url()
click to toggle source
# File lib/api_user_auth/providers/facebook.rb, line 15 def api_info_url params = { access_token: @token, fields: FIELDS.join(','), format: 'json' } URI("#{API_PATH}?#{params.to_query}") end
get_user_data()
click to toggle source
# File lib/api_user_auth/providers/facebook.rb, line 24 def get_user_data api_get_request user_data end
user_data()
click to toggle source
# File lib/api_user_auth/providers/facebook.rb, line 29 def user_data { id: @data[:id], name: @data[:name], email: @data[:email] || "#{@data[:id]}@facebook.com", provider: 'facebook', img_url: (@data[:picture] || {}).try(:[], :data).try(:[], :url), info: { birthday: @data[:birthday], city: (@data[:hometown] || {}).try(:[], :name), gender: @data[:gender] } } end
Private Instance Methods
api_get_request()
click to toggle source
# File lib/api_user_auth/providers/facebook.rb, line 50 def api_get_request response = ::Net::HTTP.get_response(api_info_url) case response.code.to_i when 200 @data = JSON.parse(response.body, symbolize_names: true) when 400 raise ApiUserAuth::Exceptions::InvalidToken, 'Invalid Token' else raise ApiUserAuth::Exceptions::ProviderError, 'Provider Error' end end