Module: PlataformaSocial::Facebook
- Included in:
- ActionController::Base
- Defined in:
- lib/plataforma_social/facebook.rb
Instance Method Summary collapse
- #facebook_login ⇒ Object
- #facebook_user_data ⇒ Object
- #load_graph ⇒ Object
- #load_oauth ⇒ Object
- #load_user_data(options = {}) ⇒ Object
- #parse_facebook_signed_request ⇒ Object
- #plataforma_social_user_data(settings = {}) ⇒ Object
Instance Method Details
#facebook_login ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/plataforma_social/facebook.rb', line 6 def facebook_login load_oauth load_graph redirect = false if params[:code] begin @oauth.get_access_token(params[:code]) rescue Koala::Facebook::OAuthTokenRequestError redirect = true if parse_facebook_signed_request && !parse_facebook_signed_request['oauth_token'] end else redirect = true if parse_facebook_signed_request && !parse_facebook_signed_request['oauth_token'] end if parse_facebook_signed_request && parse_facebook_signed_request['oauth_token'] if !session[:not_verify_facebook_permissions] === true = @graph.get_object('me', :fields => 'permissions')['permissions']['data'][0] session[:not_verify_facebook_permissions] = true PlataformaSocial.facebook_scope.split(',').each do || redirect = true unless [.strip] end end end render :text => %|<script type="text/javascript">window.top.location.href="#{@oauth.url_for_oauth_code(:permissions => PlataformaSocial.configuration.facebook_scope)}";</script>| if redirect end |
#facebook_user_data ⇒ Object
61 62 63 64 65 |
# File 'lib/plataforma_social/facebook.rb', line 61 def facebook_user_data if load_graph @graph.get_object('me') end end |
#load_graph ⇒ Object
85 86 87 |
# File 'lib/plataforma_social/facebook.rb', line 85 def load_graph @graph = Koala::Facebook::API.new parse_facebook_signed_request['oauth_token'] if parse_facebook_signed_request.present? && parse_facebook_signed_request['oauth_token'] end |
#load_oauth ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/plataforma_social/facebook.rb', line 72 def load_oauth uri = URI.parse(PlataformaSocial.facebook_callback_url.to_s) callback_url = if uri && uri.scheme.present? uri.query = [uri.query, "gm_referral_code=#{params[:gm_referral_code]}", "source=#{params[:source]}"].compact.join('&') uri.to_s else nil end @oauth = Koala::Facebook::OAuth.new(PlataformaSocial.facebook_app_id, PlataformaSocial.facebook_app_secret, callback_url) end |
#load_user_data(options = {}) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/plataforma_social/facebook.rb', line 36 def load_user_data = {} settings = { referral_code: params[:gm_referral_code], source: params[:source], referrer: request.referer, signed_request: params[:signed_request] }.merge facebook_data = facebook_user_data.try(:symbolize_keys) = (settings).try(:symbolize_keys) @user_data = { :facebook => facebook_data, :plataforma_social => } end |
#parse_facebook_signed_request ⇒ Object
67 68 69 70 |
# File 'lib/plataforma_social/facebook.rb', line 67 def parse_facebook_signed_request load_oauth @oauth.parse_signed_request params[:signed_request] if params[:signed_request].present? end |
#plataforma_social_user_data(settings = {}) ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/plataforma_social/facebook.rb', line 50 def settings = {} if settings[:signed_request] response = Request.post("#{PlataformaSocial.domains('login')}/register", settings) data = {} data[:reference] = response['id'] if response.present? && response['id'] data end end |