Module: RFacebook::Rails::ModelExtensions::ActsAsFacebookUser::InstanceMethods

Defined in:
lib/rfacebook_on_rails/model_extensions.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

:nodoc:



175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# File 'lib/rfacebook_on_rails/model_extensions.rb', line 175

def self.included(base) # :nodoc:
  ActsAsFacebookUser::ACTORS << base
  ActsAsFacebookUser::FIELDS.each do |fieldname|
    base.class_eval <<-EOF
      
      def #{fieldname}
        if facebook_session.is_ready?
          return facebook_session.cached_users_getInfo(
            :uids => [facebook_uid],
            :fields => ActsAsFacebookUser::FIELDS).user.send(:#{fieldname})
        else
          return nil
        end
      end
    
    EOF
  end
end

Instance Method Details

#facebook_sessionObject

TODO: to help developers stay within the TOS, we should have a method in here like “with_facebook_scope(fbsession)…”



152
153
154
155
156
157
158
159
160
161
162
# File 'lib/rfacebook_on_rails/model_extensions.rb', line 152

def facebook_session
  if !@facebook_session
    @facebook_session = FacebookWebSession.new(self.facebook_api_key, self.facebook_api_secret)
    begin
      @facebook_session.activate_with_previous_session(self.facebook_session_key, self.facebook_uid)
    rescue
      # not a valid facebook session, should we nil it out?
    end
  end
  return @facebook_session
end

#facebook_session=(sess) ⇒ Object



164
165
166
167
168
# File 'lib/rfacebook_on_rails/model_extensions.rb', line 164

def facebook_session=(sess)
  @facebook_session = sess
  self.facebook_session_key = @facebook_session.session_key
  self.facebook_uid = @facebook_session.session_user_id
end

#has_infinite_session_key?Boolean

Returns:

  • (Boolean)


170
171
172
173
# File 'lib/rfacebook_on_rails/model_extensions.rb', line 170

def has_infinite_session_key?
  # TODO: this check should really look at expires
  return self.facebook_session_key != nil
end