2

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

  1. 我似乎无法使用用于 RoR 的 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。

4

1 回答 1

1

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

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

在处理 facebook 时,我个人使用http://github.com/chrisdinn/hyper-graph 。它调用 facebook 图 (graph.facebook.com)

于 2010-08-10T11:59:24.770 回答