Class: RFacebook::FacebookWebSession

Inherits:
FacebookSession show all
Defined in:
lib/facebook_web_session.rb

Instance Attribute Summary

Attributes inherited from FacebookSession

#logger, #network, #session_expires, #session_key, #session_user_id

Instance Method Summary collapse

Methods inherited from FacebookSession

#_dump, _load, #expired?, #initialize, #is_activated?, #is_expired?, #is_ready?, #is_valid?, #last_error_code, #last_error_message, #quiet=, #quiet?, #suppress_errors, #suppress_errors=

Constructor Details

This class inherits a constructor from RFacebook::FacebookSession

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class RFacebook::FacebookSession

Instance Method Details

#activate_with_previous_session(key, uid = nil, expires = nil) ⇒ Object

Sets the session key directly (for example, if you have an infinite session)

key

the session key to use



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/facebook_web_session.rb', line 92

def activate_with_previous_session(key, uid=nil, expires=nil)
  # set the expiration
  @session_expires = expires
  
  # set the session key
  @session_key = key

  # determine the current user's id
  if uid
    @session_user_id = uid
  else
    result = remote_call("users.getLoggedInUser")
    @session_user_id = result.at("users_getLoggedInUser_response").inner_html
  end
end

#activate_with_token(auth_token) ⇒ Object

Gets the session information available after current user logs in.

auth_token

string token passed back by the callback URL



80
81
82
83
84
85
86
87
# File 'lib/facebook_web_session.rb', line 80

def activate_with_token(auth_token)
  result = remote_call("auth.getSession", {:auth_token => auth_token})
  unless result.nil?
    @session_user_id = result.at("uid").inner_html
    @session_key = result.at("session_key").inner_html
    @session_expires = result.at("expires").inner_html
  end
end

#get_install_url(options = {}) ⇒ Object

Gets the installation URL for this application

options.next

the page to redirect to after installation



66
67
68
69
70
71
72
73
74
75
# File 'lib/facebook_web_session.rb', line 66

def get_install_url(options={})
  # handle options
  nextPage = options[:next] ||= nil

  # url pieces
  optionalNext = (nextPage == nil) ? "" : "&next=#{CGI.escape(nextPage.to_s)}"

  # build and return URL
  return "http://#{get_network_param(:www_host)}#{get_network_param(:www_path_install)}?api_key=#{@api_key}#{optionalNext}"
end

#get_login_url(options = {}) ⇒ Object

Gets the authentication URL for this application

options.next

the page to redirect to after login

options.popup

boolean, whether or not to use the popup style (defaults to false)

options.skipcookie

boolean, whether to force new Facebook login (defaults to false)

options.hidecheckbox

boolean, whether to show the “infinite session” option checkbox



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/facebook_web_session.rb', line 42

def (options={})
  # handle options
  nextPage = options[:next] ||= nil
  popup = (options[:popup] == nil) ? false : true
  skipcookie = (options[:skipcookie] == nil) ? false : true
  hidecheckbox = (options[:hidecheckbox] == nil) ? false : true
  frame = (options[:frame] == nil) ? false : true
  canvas = (options[:canvas] == nil) ? false : true

  # url pieces
  optionalNext = (nextPage == nil) ? "" : "&next=#{CGI.escape(nextPage.to_s)}"
  optionalPopup = (popup == true) ? "&popup=true" : ""
  optionalSkipCookie = (skipcookie == true) ? "&skipcookie=true" : ""
  optionalHideCheckbox = (hidecheckbox == true) ? "&hide_checkbox=true" : ""
  optionalFrame = (frame == true) ? "&fbframe=true" : ""
  optionalCanvas = (canvas == true) ? "&canvas=true" : ""

  # build and return URL
  return "http://#{get_network_param(:www_host)}#{get_network_param(:www_path_login)}?v=1.0&api_key=#{@api_key}#{optionalPopup}#{optionalNext}#{optionalSkipCookie}#{optionalHideCheckbox}#{optionalFrame}#{optionalCanvas}"
end

#ready?Boolean

returns true if this session is completely ready to be used and make API calls

Returns:

  • (Boolean)


109
110
111
# File 'lib/facebook_web_session.rb', line 109

def ready?
  return (@session_key != nil and !expired?)
end

#signature(params) ⇒ Object

Used for signing a set of parameters in the way that Facebook specifies: <developers.facebook.com/documentation.php?v=1.0&doc=auth>

params

a Hash containing the parameters to sign



117
118
119
120
# File 'lib/facebook_web_session.rb', line 117

def signature(params)
  # always sign the parameters with the API secret
  return signature_helper(params, @api_secret)
end