2010-08-10 4 views
2

Я читаю книгу Facebook Platform Development, чтобы попытаться закодировать небольшую игру для Facebook, и я столкнулся с «маленькой» проблемой: я пытаюсь вставить пользователя каждый время, которое регистрируется, в базу данных на моем компьютере. Я использую пару методов, написанных в книге, но там, кажется, несколько проблем:Проблема сеанса с использованием Facebooker с Ruby on Rails

  1. Я не могу показаться, чтобы получить session_key из Facebook с помощью Facebooker помощников для RoR, и, таким образом, это значение равно null в таблице в моей базе данных.

  2. Каждый раз, когда я перезагружаю веб-страницу, я вижу, что хотя 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.

ответ

1

Эй, к сожалению, facebook постоянно меняет свой API!

Убедитесь, что книга обновлена ​​и что ни один из API не изменился с момента написания книги. Также проверьте, что драгоценный камень также обновлен.

Я лично использую http://github.com/chrisdinn/hyper-graph имеющий дело с facebook. Он вызывает вызовы на графике facebook (graph.facebook.com)

+0

Ну, книга не обновлена ​​- написана в 2007 году, но большинство вещей, о которых он говорит, действительно работают, поскольку на самом деле у меня работает приложение даже с аутентификацией - возможно, потому что я использую Facebooker (http://facebooker.rubyforge.org), и это «человек посередине» между мной и Facebook, но сеансы не работают, и я не нахожу Не знаю, где посмотреть. – noloman

+0

Ах, извините, но все, что я написал на протяжении многих лет с помощью facebook, похоже, не работает. Я думаю, что они содержат некоторые зависимости, работающие или просто случайно изменяющие различные вызовы api. Я бы настоятельно рекомендовал гиперграфию и фактический график facebook api. – Steve

+0

вместо facebooker вы имеете в виду? – noloman

 Смежные вопросы

  • Нет связанных вопросов^_^