2011-01-31 37 views
5

由於某種原因,FB.getLoginStatus函數對我來說不起作用 - 儘管它已經用了一段時間了。 下面是非常基本的代碼,並且從不彈出警報 - 看起來像FB.getLoginStatus從不調用提供的函數。 任何想法?FB.getLoginStatus不起作用?

<body> 
<form id="form1" runat="server"> 
<div id="fb-root"> 
</div> 
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
    FB.init({ appId: 'xxx', status: true, cookie: true, xfbml: true }); 
    FB.getLoginStatus(function (response) { 
     alert("Hi there"); 
    }); 
</script> 
</form> 

回答

0

在哪個平臺開發的應用程序?如果是FBML然後檢查FBJS-Facebook JavaScript。我認爲警報不會在FBML應用程序。 我得到這個working..Just檢查

<div id="fb-root"></div> 
<script type="text/javascript"> 
window.fbAsyncInit = function() { 
    FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: false}); 
}; 
(function() { 
    var e = document.createElement('script'); 
    e.type = 'text/javascript'; 
    e.src = document.location.protocol + 
     '//connect.facebook.net/en_US/all.js'; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
}()); 
window.fbAsyncInit = function() { 
    FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: true}); 

     /* All the events registered */ 
     FB.Event.subscribe('auth.login', function(response) { 
      // do something with response 
      login(); 
     }); 
     FB.Event.subscribe('auth.logout', function(response) { 
      // do something with response 
      logout(); 
     }); 

     FB.getLoginStatus(function(response) { 
      if (response.session) { 
       // logged in and connected user, someone you know 
       login(); 
      } 
     }); 
    }; 

6

如果您的應用程序是在沙盒模式看到了這個bug:https://developers.facebook.com/bugs/240058389381072

也由菲利普Bulley閱讀註釋

[ ...]基本上沙盒應用程序對非應用程序開發人員是不可見的。如果當前沒有用戶登錄到Facebook,Facebook將會像您的沙盒應用程序根本不存在一樣(FB顯然不知道您是應用程序開發人員,因此該應用程序是不可見的!)。

此錯誤已被確認並分配。

+0

哦天啊,謝謝你解釋這個。試圖找出問題所在,我一直把我的頭髮拉出幾個小時。關閉沙盒模式,現在FB.getLoginStatus正常工作。 (這引起了對沙箱模式的價值的質疑...但是哦)謝謝! – 2012-02-09 21:03:09