Facebook SDK . login在.init问题之前被调用



在我的主页中,我有这样的代码:

<body>
<div id="fb-root">
</div>
<script>
    window.fbAsyncInit = function () {
        FB.init({
            appId: "xxx",
            channelUrl: "/xd_receiver.htm",
            xfbml: false
        });
    };
</script>
....
</body>
在一个单独的。js文件中,我有我的facebook代码如下:
var Facebook = function () {
    var pub = {};
    var priv = {};
    pub.Login = function () {
        return priv.FacebookLogin();
    };
    priv.FacebookLogin = function () {
        FB.login(function (response) {
            if (response.authResponse) {
                FB.api('/me', function (response) {
                    console.log("you are logged in");
                    return response;
                });
            }
        });
    };
    return pub;
};

现在我的问题是,使用这样的代码,调用调用FacebookLogin函数的Login将返回控制台消息,登录在init之前调用,即使init是正确的fb说它应该是,就在标签之后。我测试将我的init调用置于我的FB之上。登录,然后它再次工作,所以有些东西是错误的安置。以前我有js文件(包含facebook功能)链接在标签内,但我确实试图把它放在初始化脚本之后,但我得到了同样的错误。(facebook函数的调用是在一个js文件链接在,这很重要吗?)

有人知道为什么我得到这个错误信息,FB.login()之前调用FB.init()?

问题似乎是实际的测试,当在本地主机测试时,我不得不重建允许我使用登录的项目,但如果我只是使用F5更新页面,那么我得到了这个问题。不是100%确定为什么,但我通过在更改后运行来解决它。

最新更新