There are groups within our app that people can be invited too. If a user recieves an invite to a group and hasn''t yet added the application the filter chain ends up redirecting them to the main canvas page instead of the the group page directly. Is there a way to handle this if the user hasn''t installed the app, I tried redirect_back_or_default in one of my controllers but it ended up putting me into a loop. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/facebooker-talk/attachments/20080819/039c1d05/attachment.html>
The only way I''ve been able to handle this is to set a session variable and then handle that in your default url (or before_filter or whatever) that facebook is sending them to. Maybe someone has something more elegant? BJ Clark On Aug 19, 2008, at 2:27 PM, Ken Schroeder wrote:> There are groups within our app that people can be invited too. If a > user recieves an invite to a group and hasn''t yet added the > application the filter chain ends up redirecting them to the main > canvas page instead of the the group page directly. Is there a way > to handle this if the user hasn''t installed the app, I tried > redirect_back_or_default in one of my controllers but it ended up > putting me into a loop. > _______________________________________________ > Facebooker-talk mailing list > Facebooker-talk at rubyforge.org > http://rubyforge.org/mailman/listinfo/facebooker-talk
The call to ensure application is added acts just like a before filter. So you can exclude certain actions if they do not require adding the app. Dave Sent from my iPhone Dave On Aug 19, 2008, at 2:27 PM, "Ken Schroeder" <schroeder.ken at gmail.com> wrote:> There are groups within our app that people can be invited too. If a > user recieves an invite to a group and hasn''t yet added the > application the filter chain ends up redirecting them to the main > canvas page instead of the the group page directly. Is there a way > to handle this if the user hasn''t installed the app, I tried > redirect_back_or_default in one of my controllers but it ended up > putting me into a loop. > _______________________________________________ > Facebooker-talk mailing list > Facebooker-talk at rubyforge.org > http://rubyforge.org/mailman/listinfo/facebooker-talk
Oh I think I misunderstood the issue... You want to redirect the user back to the original requested URL after they add the app, right? This is what I do: # Override this so that we get redirected to the right place. def application_is_not_installed_by_facebook_user redirect_to new_facebook_session.install_url(:next => next_path() ) end def next_path path = "#{params[:controller]}/#{params[:action]}?" path = "/#{path}" unless Facebooker::FacebookAdapter.new_api? || Facebooker.is_for?(:bebo) non_keys = ["controller", "method", "action","format", "_method", "auth_token"] parts = [] params.each do |k,v| next if non_keys.include?(k.to_s) || k.to_s.starts_with("fb") parts << "#{k}=#{v}" end path + parts.join("&") end On Tue, Aug 19, 2008 at 2:45 PM, David Clements <david.g.clements at gmail.com>wrote:> The call to ensure application is added acts just like a before filter. So > you can exclude certain actions if they do not require adding the app. > > Dave > > Sent from my iPhone > > Dave > > > On Aug 19, 2008, at 2:27 PM, "Ken Schroeder" <schroeder.ken at gmail.com> > wrote: > > There are groups within our app that people can be invited too. If a user >> recieves an invite to a group and hasn''t yet added the application the >> filter chain ends up redirecting them to the main canvas page instead of the >> the group page directly. Is there a way to handle this if the user hasn''t >> installed the app, I tried redirect_back_or_default in one of my controllers >> but it ended up putting me into a loop. >> _______________________________________________ >> 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/20080819/eb2b71c0/attachment.html>
Yeah that was the only thought I had, was also hoping for something more elegant. On Tue, Aug 19, 2008 at 4:38 PM, BJ Clark <bjclark at scidept.com> wrote:> The only way I''ve been able to handle this is to set a session variable and > then handle that in your default url (or before_filter or whatever) that > facebook is sending them to. > Maybe someone has something more elegant? > > BJ Clark > > > On Aug 19, 2008, at 2:27 PM, Ken Schroeder wrote: > > There are groups within our app that people can be invited too. If a user >> recieves an invite to a group and hasn''t yet added the application the >> filter chain ends up redirecting them to the main canvas page instead of the >> the group page directly. Is there a way to handle this if the user hasn''t >> installed the app, I tried redirect_back_or_default in one of my controllers >> but it ended up putting me into a loop. >> _______________________________________________ >> 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/20080819/5a2ad7de/attachment.html>
Tthis worked great with a few changes for me. Had problems with Facebooker::FacebookAdapter.new_api? Is that in a newer facebooker release? Also not sure if you know you have a typo with starts_with("fb") should be starts_with?("fb") Additionally I modified how you handled the path creation to not use the action since restful paths don''t contain show or index in the url which for my use would be the generally used method I need to reference this. Probably have to case out the action if I expect something to go to edit. Thanks again --ken s. On Tue, Aug 19, 2008 at 4:54 PM, David Clements <digidigo at gmail.com> wrote:> Oh I think I misunderstood the issue... You want to redirect the user back > to the original requested URL after they add the app, right? > > This is what I do: > > # Override this so that we get redirected to the right place. > def application_is_not_installed_by_facebook_user > redirect_to new_facebook_session.install_url(:next => next_path() ) > end > > def next_path > path = "#{params[:controller]}/#{params[:action]}?" > path = "/#{path}" unless Facebooker::FacebookAdapter.new_api? || > Facebooker.is_for?(:bebo) > > non_keys = ["controller", "method", "action","format", "_method", > "auth_token"] > parts = [] > params.each do |k,v| > next if non_keys.include?(k.to_s) || k.to_s.starts_with("fb") > parts << "#{k}=#{v}" > end > path + parts.join("&") > end > > > > > > On Tue, Aug 19, 2008 at 2:45 PM, David Clements < > david.g.clements at gmail.com> wrote: > >> The call to ensure application is added acts just like a before filter. >> So you can exclude certain actions if they do not require adding the app. >> >> Dave >> >> Sent from my iPhone >> >> Dave >> >> >> On Aug 19, 2008, at 2:27 PM, "Ken Schroeder" <schroeder.ken at gmail.com> >> wrote: >> >> There are groups within our app that people can be invited too. If a user >>> recieves an invite to a group and hasn''t yet added the application the >>> filter chain ends up redirecting them to the main canvas page instead of the >>> the group page directly. Is there a way to handle this if the user hasn''t >>> installed the app, I tried redirect_back_or_default in one of my controllers >>> but it ended up putting me into a loop. >>> _______________________________________________ >>> 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/20080820/36981f76/attachment.html>
Cool. 1) new_api? is newish I think. 2) I think we have a custom starts_with , some legacy thing. 3) The next path is definitely kludgey. I''d love to see what you have. Also, one note. If you notice the code that adds the "/" to the path. I am not sure if that is currently necessary but there was a difference between the new facebook implementation and the old implementation of the next parameter. Dave On Wed, Aug 20, 2008 at 11:27 AM, Ken Schroeder <schroeder.ken at gmail.com>wrote:> Tthis worked great with a few changes for me. > > Had problems with Facebooker::FacebookAdapter.new_api? Is that in a newer > facebooker release? > > Also not sure if you know you have a typo with starts_with("fb") should be > starts_with?("fb") > > Additionally I modified how you handled the path creation to not use the > action since restful paths don''t contain show or index in the url which for > my use would be the generally used method I need to reference this. > Probably have to case out the action if I expect something to go to edit. > > Thanks again --ken s. > > > > On Tue, Aug 19, 2008 at 4:54 PM, David Clements <digidigo at gmail.com>wrote: > >> Oh I think I misunderstood the issue... You want to redirect the user back >> to the original requested URL after they add the app, right? >> >> This is what I do: >> >> # Override this so that we get redirected to the right place. >> def application_is_not_installed_by_facebook_user >> redirect_to new_facebook_session.install_url(:next => next_path() ) >> end >> >> def next_path >> path = "#{params[:controller]}/#{params[:action]}?" >> path = "/#{path}" unless Facebooker::FacebookAdapter.new_api? || >> Facebooker.is_for?(:bebo) >> >> non_keys = ["controller", "method", "action","format", "_method", >> "auth_token"] >> parts = [] >> params.each do |k,v| >> next if non_keys.include?(k.to_s) || k.to_s.starts_with("fb") >> parts << "#{k}=#{v}" >> end >> path + parts.join("&") >> end >> >> >> >> >> >> On Tue, Aug 19, 2008 at 2:45 PM, David Clements < >> david.g.clements at gmail.com> wrote: >> >>> The call to ensure application is added acts just like a before filter. >>> So you can exclude certain actions if they do not require adding the app. >>> >>> Dave >>> >>> Sent from my iPhone >>> >>> Dave >>> >>> >>> On Aug 19, 2008, at 2:27 PM, "Ken Schroeder" <schroeder.ken at gmail.com> >>> wrote: >>> >>> There are groups within our app that people can be invited too. If a >>>> user recieves an invite to a group and hasn''t yet added the application the >>>> filter chain ends up redirecting them to the main canvas page instead of the >>>> the group page directly. Is there a way to handle this if the user hasn''t >>>> installed the app, I tried redirect_back_or_default in one of my controllers >>>> but it ended up putting me into a loop. >>>> _______________________________________________ >>>> 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/20080820/a8dca6cc/attachment.html>