FB.getLoginStatus不起作用?

Evg*_*eni 5 facebook facebook-graph-api

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>
Run Code Online (Sandbox Code Playgroud)

Chr*_*cob 6

如果您的应用程序处于沙盒模式,请参阅此错误:https://developers.facebook.com/bugs/240058389381072

另请阅读Philip Bulley的评论

[...]基本上沙盒应用程序对于非应用程序开发人员是不可见的.如果当前没有用户登录Facebook,Facebook将表现为您的沙盒应用程序根本不存在(FB显然不知道您是应用程序开发人员,因此该应用程序是不可见的!).

此错误已得到确认和分配.


Dam*_*ran 0

您正在哪个平台上开发应用程序?如果是 FBML,则检查FBJS-Facebook JavaScript。我认为警报在 FBML 应用程序中不起作用。我得到了这个工作..只需检查

<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();
             }
         });
     };
Run Code Online (Sandbox Code Playgroud)