使用Facebook on Ruby on Rails的会话问题

时间:2010-08-10 11:53:18

标签: ruby-on-rails ruby facebook rubygems facebooker

我正在阅读Facebook平台开发这本书,试图为Facebook编写一个小游戏,我遇到了一个“小”问题:我试图在每次登录时将用户插入数据库在我的电脑里。我正在使用书中写的几种方法,但似乎存在一些问题:

  1. 我似乎无法使用Facebook的帮助程序从RoR检索来自Facebook的session_key,因此该值在我的数据库中的表中为空。

  2. 每次重新加载网页时,我都可以看到即使facebook_id相同,同一个用户也会在数据库的另一行中添加到我的表中,即使它不应该;它只是应该更新属性session_key,如果这种情况发生了变化,那么现在它就是null。

  3. 我正在使用这三种方法来执行所有这些:

    def self.for(facebook_id,facebook_session=nil)
        user = User.find_or_create_by_facebook_id(facebook_id)
        unless facebook_session.nil?
          user.store_session(facebook_session.session_key)
        end
      end
    
      def store_session(session_key)
        if self.session_key != session_key
          update_attribute(:session_key, session_key)
        end
      end
    
      # Re-create a Facebooker::Session object outside a request
      def facebook_session
        @facebook_session ||= returning Facebooker::Session.create do |session|
          # Facebook sessions are good for only one hour storing
          session.secure_with!(session_key,facebook_id,1.hour.from_now)
        end
      end
    

    非常感谢大家!1。

1 个答案:

答案 0 :(得分:1)

嘿,遗憾的是facebook一直在改变它的API!

确保本书是最新的,并且在书籍编写时没有任何API发生变化。还要检查gem是否也是最新的。

我在处理Facebook时亲自使用http://github.com/chrisdinn/hyper-graph。它调用facebook图形(graph.facebook.com)