我正在阅读Facebook平台开发这本书,试图为Facebook编写一个小游戏,我遇到了一个“小”问题:我试图在每次登录时将用户插入数据库在我的电脑里。我正在使用书中写的几种方法,但似乎存在一些问题:
我似乎无法使用Facebook的帮助程序从RoR检索来自Facebook的session_key,因此该值在我的数据库中的表中为空。
每次重新加载网页时,我都可以看到即使facebook_id相同,同一个用户也会在数据库的另一行中添加到我的表中,即使它不应该;它只是应该更新属性session_key,如果这种情况发生了变化,那么现在它就是null。
我正在使用这三种方法来执行所有这些:
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。
答案 0 :(得分:1)
嘿,遗憾的是facebook一直在改变它的API!
确保本书是最新的,并且在书籍编写时没有任何API发生变化。还要检查gem是否也是最新的。
我在处理Facebook时亲自使用http://github.com/chrisdinn/hyper-graph。它调用facebook图形(graph.facebook.com)