2010-08-10 90 views
2

我正在閱讀Facebook平臺開發書,以嘗試爲Facebook編寫一個小型遊戲,並且遇到了一個「小」問題:我試圖插入一個用戶記錄時間記錄到我的電腦中的數據庫中。我使用了幾個寫在書的方法,但似乎有兩個問題:使用Facebooker與Ruby on Rails的會話問題

  1. 我似乎無法使用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。

回答

1

嘿,可悲的是Facebook一直在改變它的API!

請確保本書是最新的,並且在編寫本書時API沒有任何變化。同時檢查寶石是否也是最新的。

我個人使用http://github.com/chrisdinn/hyper-graph與facebook打交道時。它打電話給臉書(graph.facebook.com)

+0

那麼,這本書是不是最新的 - 在2007年寫的 - 但它談論的大部分事情實際上工作,因爲我實際上有應用程序運行即使使用身份驗證 - 可能是因爲我使用Facebooker(http://facebooker.rubyforge.org),這是我和Facebook之間的「中間人」,但會話內容似乎不起作用,我不'不知道在哪裏看.. – noloman 2010-08-10 12:14:11

+0

啊 - 抱歉,但我多年來使用Facebook寫的東西似乎沒有工作。我認爲他們保持一些依賴工作或隨機更改各種API調用。我強烈推薦超圖和實際的facebook圖表api。 – Steve 2010-08-10 13:26:35

+0

而不是你的意思? – noloman 2010-08-10 13:56:46