2010-08-10 75 views
2

我正在阅读Facebook平台开发书,以尝试为Facebook编写一个小型游戏,并且遇到了一个“小”问题:我试图插入一个用户记录时间记录到我的电脑中的数据库中。我使用了几个写在书的方法,但似乎有两个问题:使用Facebooker与Ruby on Rails的会话问题

  1. 我似乎无法使用Facebooker佣工的回报率从Facebook获取session_key可以,因此本值在我的数据库表中为空。

  2. 每次我重新加载网页,我都能看到即使facebook_id是相同的,同一个用户也会被添加到我的数据库表中的另一行,即使它不应该;它只是应该更新属性session_key,如果这个更改 - 一方面,现在它是空的。

这是三个方法我使用,以便执行这一切!

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

嘿,可悲的是Facebook一直在改变它的API!

请确保本书是最新的,并且在编写本书时API没有任何变化。同时检查宝石是否也是最新的。

我个人使用http://github.com/chrisdinn/hyper-graph与facebook打交道时。它打电话给脸书(graph.facebook.com)

+0

那么,这本书是不是最新的 - 在2007年写的 - 但它谈论的大部分事情实际上工作,因为我实际上有应用程序运行即使使用身份验证 - 可能是因为我使用Facebooker(http://facebooker.rubyforge.org),这是我和Facebook之间的“中间人”,但会话内容似乎不起作用,我不'不知道在哪里看.. – noloman 2010-08-10 12:14:11

+0

啊 - 抱歉,但我多年来使用Facebook写的东西似乎没有工作。我认为他们保持一些依赖工作或随机更改各种API调用。我强烈推荐超图和实际的facebook图表api。 – Steve 2010-08-10 13:26:35

+0

而不是你的意思? – noloman 2010-08-10 13:56:46