2011-11-06 37 views
1

我使用的是Rails 3.0.9。 試圖通過Facebook登錄到我的(本地主機)網站。使用Koala無法獲取Oauth facebook cookie連接到Facebook(使用Rails)

我在登錄頁面初始化參數:

FB.init({ 
     appId : '<%= FB_APP_ID %>', 
     status : true, 
     cookie : true, 
     xfbml : true 
}); 

的登錄按鈕的作品,我得到了Facebook登錄彈出,我可以成功登錄到Facebook。 則達到了以下事件:

FB.Event.subscribe('auth.sessionChange', function(response) { 
    if (response.session) {location.href= ...} 

而且我被重定向到想要的位置。 但是 - 無法獲得任何「fbs_」或「fbsr_」的cookie,就像Oauth正在尋找的:get_user_info_from_cookie(cookies)

我的cookies = {},什麼也沒有。 有幾次,我記得我確實有一些Facebook的cookie,我不能重建這種情況,但無論如何,它不包括「fbs_」,只有其他人。

此外,登錄後,當我回到瀏覽器的Facebook選項卡並刷新時,它會向我顯示我的Facebook頁面,但在一秒鐘後,它會顯示一個彈出窗口,顯示「您需要登錄」。在我的應用程序,但它仍然知道繼續引導我到想要的href,就像用戶登錄時所需要的。

我真的很想聽聽如果你有什麼可以幫助我... :-)

謝謝, Moozly。

  • 剛剛得到了一些Facebook餅乾的場景(仍然不是通緝的名字)。有以下名稱:「datr」,「locale」,「locale」,「reg_fb_gate」,「lu」。 但即使對於這些我不能與Rails cookies參數 - cookies [「dart」]返回null。 餅乾帕拉姆只顯示與本地主機的主機(其中包含我在(具有間隙)正在記錄數據的餅乾 - 常規登錄過程現場

回答

1

只是想更新的說,我已經解決了我的問題:

  1. 我已經加入到init帕拉姆:oauth : true

    FB.init({ 
        appId : '<%= FB_APP_ID %>', 
        status : true, 
        cookie : true, 
        xfbml : true, 
        oauth : true 
    }); 
    
  2. 顯然,有一個bug與添加在添加的參數js.src,所以我刪除它們,問題解決了(!):

    (function(d, s, id) { 
        var js, fjs = d.getElementsByTagName(s)[0]; 
        if (d.getElementById(id)) {return;} 
        js = d.createElement(s); js.id = id; 
        js.src = "//connect.facebook.net/en_US/all.js" //removed: #xfbml=1&appId=<%= FB_APP_ID %>"; 
        fjs.parentNode.insertBefore(js, fjs); 
    } 
    (document, 'script', 'facebook-jssdk')); 
    

這解決了這個問題餅乾給我!

0

如果您想使用localhost進行Facebook開發,請在您的/ etc/hosts文件中添加「127.0.0.1 localhost.local」記錄,在developers.facebook.com的應用程序設置中更改域並將瀏覽器指向此url - 它完美的作品

相關問題