另一个getLoginStatus无法正常工作

时间:2014-11-10 02:51:27

标签: facebook facebook-javascript-sdk

首先,我知道有许多类似的问题,我已经检查了所有我能找到的,但似乎没有任何效果。话虽这么说,这是问题的最小设置:

<body>
<script src="//connect.facebook.net/en_US/sdk.js"></script>
<script>
window.fbAsyncInit = function() {
    FB.init({
        appId: 'xxxxxxxxxxxx',
        status: true,
        version: 'v2.1'
    });

    FB.getLoginStatus( function( response ) {
        console.log( 1 );
    }, true );

    FB.Event.subscribe( 'auth.statusChange', function( response ) {
        console.log( 2 );
    });
}
</script>
<button onclick="FB.login();">Login with Facebook</button>

我想要的只是当页面加载时,控制台输出1或2.但没有任何反应。未调用getLoginStatus回调函数,并且未触发auth.statusChange事件。但是,当我单击登录按钮时,'auth.statusChange'事件将触发,控制台输出2,如预期的那样。但是当我重新加载页面时,我回到了开头:控制台中根本没有输出。

正如您所看到的,我已经包含了getLoginStatus的第二个参数来强制往返于Facebook。我还对我的应用设置进行了三次检查:它不是沙盒模式,所有域都可以。我已经复制粘贴了Facebook提供的默认代码来实现登录机制,但问题仍然存在。我正在研究最新的Chrome,所以它与IE无关,因为它似乎与许多其他问题有关。

我现在最好的线索是控制台每次加载页面输出三次错误:

获取http://static.ak.facebook.com/connect/xd_arbiter/QjK2hWv6uak.js?version=41 408(请求超时)

我用谷歌搜索了这个错误,却一无所获。谁知道它可能意味着什么?或者如何使登录工作?感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

问题是我的应用程序使用的是http而不是https。为了使用Facebook登录,显然需要使用https!我将所有内容更改为https,控制台同时输出1和2,408错误也消失了。

相关问题