我正在阅读 Facebook 平台开发这本书,以便尝试为 Facebook 编写一个小游戏,我遇到了一个“小”问题:每次登录时,我都试图将一个用户插入到我计算机中的数据库中. 我正在使用书中写的几种方法,但似乎存在一些问题:
我似乎无法使用用于 RoR 的 Facebooker 助手从 Facebook 检索 session_key,因此该值在我的数据库中的表中为空。
每次我重新加载网页时,我都可以看到即使 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。