Javascript FB.login()不调用回调

Javascript FB.login()不调用回调,javascript,facebook,facebook-graph-api,Javascript,Facebook,Facebook Graph Api,我有JS SDK中Facebook登录按钮的简单代码,我在其中添加了Google Analytics代码,以查看有多少成功登录: ga('send', 'event', 'a login', 'x', 'null'); FB.login(function(resp) { ga('send', 'event', 'a login callback', 'x', 'null'); if (resp.authResponse) { testAPI(true, 1);

我有JS SDK中Facebook登录按钮的简单代码,我在其中添加了Google Analytics代码,以查看有多少成功登录:

ga('send', 'event', 'a login', 'x', 'null');
FB.login(function(resp) {
    ga('send', 'event', 'a login callback', 'x', 'null');
    if (resp.authResponse) {
        testAPI(true, 1);
    } else {
        alert('Must be logged in with Facebook account!');
    }
    }, {scope: 'public_profile,user_photos'});
结果令人惊讶:

1.  a login             x   384 16.28%
2.  a login callback    x   361 15.31%
基本上有23次(即384-361次)没有调用回调函数。这种情况将影响所有后续的JSAPI调用。我没有在这里发布完整代码,但结果如下:

1.  a login             x   441 15.96%
2.  a login callback    x   421 15.23%
3.  b testAPI 1         x   395 14.29%
4.  b testAPI callback  x   384 13.89%
因此,在对FBAPI的testAPI函数调用中,有11次回调函数未被调用。这使得实际完成流程的用户总数从441(按下按钮)增加到384。当然,有些用户没有授权该应用程序,因此可能会有轻微的下降,但丢失的回拨电话对我来说似乎并不合适


还有其他人经历过这种情况吗?

你验证过用户不是简单地关闭你的页面吗?没有,也许我应该这样做。不过,说真的,如果你在if/else块的两个分支中都记录了一些东西,并且发现一些东西丢失了,那么可以合理地假设两个分支都没有被触发,如果在返回之前完全停止执行,会发生什么情况(如果窗口关闭,会发生什么情况)好的,请写一个答案,这样我就可以接受了