Я читаю книгу «Разработка платформы Facebook», чтобы попытаться написать небольшую игру для Facebook, и столкнулся с «маленькой» проблемой: я пытаюсь вставить пользователя каждый раз, когда он регистрируется, в базу данных.в моем компьютере.Я использую несколько методов, описанных в книге, но, похоже, есть несколько проблем:
Не получается получить сессионный ключ из Facebook с помощью помощников Facebooker дляRoR, и, следовательно, это значение равно нулю в таблице в моей базе данных.
Каждый раз, когда я перезагружаю веб-страницу, я вижу, что даже если значение 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.