[Facebooker-talk] Session key invalid or no longer valid
Pierre Valade
pierre at tiiptop.com
Mon Feb 2 07:34:41 EST 2009
Note that you can also add it in your application.rb
rescue_from Facebooker::Session::SessionExpired, :with =>
:facebook_session_expired
Pierre Valade
+33.6.89.04.15.30
www.tiiptop.com
On Sun, Feb 1, 2009 at 10:36 PM, Adeel Ahmad <adeel at proletariandesign.com>wrote:
> Funny I just realized that as your email popped up. Thanks again.
>
> - Adeel
>
>
>
> On Sun, Feb 1, 2009 at 1:32 PM, kevin lochner <klochner at gmail.com> wrote:
>
>> it's only going to catch the exception in your controller, so make sure
>> you load any needed data from facebook in the controller (rather than
>> leaving
>> it to the view - e.g., <%= facebook_session.user.name %>
>>
>> On Feb 1, 2009, at 4:26 PM, Adeel Ahmad wrote:
>>
>> Thanks, this looks like it should do well for now. However it's not
>> catching the exception... must be some other config I have wrong. Odd.
>>
>> module Facebooker
>> module Rails
>> module Controller
>> include Facebooker::Rails::ProfilePublisherExtensions
>> def self.included(controller)
>> controller.extend(ClassMethods)
>> controller.before_filter :set_adapter
>> controller.before_filter :set_fbml_format
>> controller.helper_attr :facebook_session_parameters
>> controller.helper_method :request_comes_from_facebook?
>> controller.rescue_from Facebooker::Session::SessionExpired, :with
>> => :facebook_session_expired
>> end
>>
>> def facebook_session_expired
>> clear_fb_cookies!
>> clear_facebook_session_information
>> flash[:error] = "Your facebook session has expired."
>> redirect_to root_url
>> end
>>
>> - Adeel
>>
>>
>>
>>
>> On Sun, Feb 1, 2009 at 11:09 AM, kevin lochner <klochner at gmail.com>wrote:
>>
>>> I'm using a rescue. I tried advancing this discussion a couple weeks ago
>>> - the problem is that to really *know* that the session is valid, you have
>>> to try using it (i.e., hit the facebook rest server with a request). I
>>> think it's a waste to constantly ping the facebook server just to make
>>> sure you don't get an invalid session error when you're not expecting it,
>>> especially given that this scenario will be low-frequency with respect to
>>> total requests.
>>>
>>> So here's what I did in facebooker/rails/controller.rb:
>>>
>>> module Facebooker
>>> module Rails
>>> module Controller
>>> def self.included(controller)
>>> controller.rescue_from Facebooker::Session::SessionExpired, :with
>>> => :facebook_session_expired
>>> end
>>>
>>> def facebook_session_expired
>>> clear_fb_cookies!
>>> clear_facebook_session_information
>>> flash[:error] = "Your facebook session has expired."
>>> redirect_to root_url
>>> end
>>>
>>> I'm hesitant to add this to facebooker because i'm not convinced everyone
>>> will want to do it this way, and
>>> it probably means adding another parameter like "expired_session_url" so
>>> that this exception handling
>>> works out of the box (since not everyone will redirect to root_url).
>>>
>>> - kevin
>>>
>>>
>>> On Feb 1, 2009, at 12:51 PM, Adeel Ahmad wrote:
>>>
>>> This may be related to Aaron's question on Jan. 30. However in my case I
>>> doing Facebook Connect using Facebooker for my site.
>>> Following the Facebook Connect tutorial it does create a session and show
>>> the user as logged in. For now I have the same 'fb' controller just to demo
>>> log in.
>>> However if the user logs out at facebook.com and then refreshes fb/index
>>> on my site, I get "Session key invalid or no longer valid" on the line that
>>> outputs @facebook_session.user.name. Just FYI if I output
>>> @facebook_session.user.to_s it does give me the uid.
>>> If you look at the stack trace below you'll notice that it passes through
>>> a number of actions that test for existence and validity of the session. It
>>> has a problem in the Error class of parser.rb. I would think it should catch
>>> the problem a lot earlier than in parser.rb.
>>> Any thoughts on how to troubleshoot and/or workaround this? I'm on Rails
>>> 2.1.1.
>>>
>>> ========================================
>>> Facebooker::Session::SessionExpired in Fb#index
>>>
>>> Showing fb/index.html.erb where line #10 raised:
>>>
>>> Session key invalid or no longer valid
>>>
>>> Extracted source (around line #10):
>>>
>>> 7: <%= fb_login_button%>
>>> 8:
>>> 9: <% if facebook_session %>
>>> 10: <h2>You are logged in as <%= facebook_session.user.name %></h2>
>>> 11: <% else %>
>>> 12: <h2>You are not logged in!</h2>
>>> 13: <% end %>
>>>
>>> vendor/plugins/facebooker/lib/facebooker/parser.rb:487:in `process'
>>> vendor/plugins/facebooker/lib/facebooker/parser.rb:15:in `parse'
>>> vendor/plugins/facebooker/lib/facebooker/service.rb:20:in `post'
>>> vendor/plugins/facebooker/lib/facebooker/session.rb:473:in
>>> `post_without_logging'
>>> vendor/plugins/facebooker/lib/facebooker/session.rb:484:in `post'
>>> vendor/plugins/facebooker/lib/facebooker/logging.rb:27:in `log_fb_api'
>>> vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb:8:in
>>> `realtime'
>>> vendor/plugins/facebooker/lib/facebooker/logging.rb:27:in `log_fb_api'
>>> vendor/plugins/facebooker/lib/facebooker/session.rb:483:in `post'
>>> vendor/plugins/facebooker/lib/facebooker/models/user.rb:120:in `populate'
>>> vendor/plugins/facebooker/lib/facebooker/model.rb:35:in `name'
>>> app/views/fb/index.html.erb:10:in
>>> `_run_erb_47app47views47fb47index46html46erb'
>>>
>>>
>>> --
>>> - Adeel
>>>
>>>
>>>
>>> _______________________________________________
>>> Facebooker-talk mailing list
>>> Facebooker-talk at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/facebooker-talk
>>>
>>>
>>>
>>
>>
>
> _______________________________________________
> Facebooker-talk mailing list
> Facebooker-talk at rubyforge.org
> http://rubyforge.org/mailman/listinfo/facebooker-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/facebooker-talk/attachments/20090202/d2b59d78/attachment-0001.html>
More information about the Facebooker-talk
mailing list