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 ⇒ Object
- #parse_facebook_signed_request ⇒ Object
- #plataforma_social_user_data ⇒ Object
Instance Method Details
#facebook_login ⇒ Object
5 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 |
# File 'lib/plataforma_social/facebook.rb', line 5 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
53 54 55 56 57 |
# File 'lib/plataforma_social/facebook.rb', line 53 def facebook_user_data if load_graph @graph.get_object('me') end end |
#load_graph ⇒ Object
68 69 70 |
# File 'lib/plataforma_social/facebook.rb', line 68 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
64 65 66 |
# File 'lib/plataforma_social/facebook.rb', line 64 def load_oauth @oauth = Koala::Facebook::OAuth.new(PlataformaSocial.facebook_app_id, PlataformaSocial.facebook_app_secret, PlataformaSocial.facebook_callback_url) end |
#load_user_data ⇒ Object
35 36 37 38 39 40 |
# File 'lib/plataforma_social/facebook.rb', line 35 def load_user_data facebook_data = facebook_user_data.symbolize_keys if facebook_user_data = .try(:symbolize_keys) @user_data = { :facebook => facebook_data, :plataforma_social => } end |
#parse_facebook_signed_request ⇒ Object
59 60 61 62 |
# File 'lib/plataforma_social/facebook.rb', line 59 def parse_facebook_signed_request load_oauth @oauth.parse_signed_request params[:signed_request] if params[:signed_request].present? end |
#plataforma_social_user_data ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/plataforma_social/facebook.rb', line 42 def if params[:signed_request] response = Request.post("#{PlataformaSocial.domains('login')}/register", { :signed_request => params[:signed_request], :social_ref => params[:social_ref] }) data = {} data[:reference] = response['id'] if response.present? && response['id'] data end end |