6

突然,当我尝试通过 facebook 登录时,我的应用程序中发生了一件奇怪的事情。询问登录详细信息后,facebook 连接弹出对话框将显示一个空白屏幕。通常我希望看到窗口关闭,然后网站本身会继续运行,但它似乎已经挂起。

我在用Javascript SDK on Localhost

这是我正在使用的代码(直接从 facebook 文档复制):

window.fbAsyncInit = function () {
    FB.init({ appId: fbAppId,
        status: false,
        cookie: true,
        xfbml: true
    });

};

(function (d) {
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) { return; }
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    ref.parentNode.insertBefore(js, ref);
} (document));



$(document).ready(function () {


    $("#fb_button_login").click(function () {


        FB.login(function (response) {
            if (response.authResponse) {
                console.log('Welcome!  Fetching your information.... ');
                FB.api('/me', function (response) {
                    console.log('Good to see you, ' + response.name + '.');
                });
            } else {
                console.log('User cancelled login or did not fully authorize.');
            }
        });


    });

});

其他一些注意事项:

  • 这似乎发生在所有浏览器上。
  • 我研究了所有其他帖子,但似乎找不到适合我的解决方案
  • 控制台中没有显示错误消息
  • 开发时,我使用了一个单独的 FB 应用程序 ID,我专门为 localhost 设置了我正在使用的指定端口(已经运行了超过 12 个月)
    • 我没有启用沙盒模式

它似乎挂起的 URL 在这里

多谢你们。

4

2 回答 2

1

似乎是一个错误: https ://developers.facebook.com/bugs/241915819261223?browse=search_4ff2ead131a032989098325

从上面链接中的评论中,您可以尝试在端口 80 上运行您的应用程序并避免 url 中的端口部分

于 2012-07-03T12:56:17.423 回答
0

试试下面的代码

<html>
<body>
<div id="fb-root"></div>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js" ></script>
<script>

FB.init({appId: fbAppId, status: true, cookie: true, xfbml: true});
$(document).ready(function () {
    $("#fb_button_login").click(function () {
        FB.login(function (response) {
            if (response.authResponse) {
                console.log('Welcome!  Fetching your information.... ');
                FB.api('/me', function (response) {
                    console.log('Good to see you, ' + response.name + '.');
                });
            } else {
                console.log('User cancelled login or did not fully authorize.');
            }
        });


    });
});

</script>
<a href="javascript://" id="fb_button_login">Login</a>
</body>
</html>
于 2012-09-17T10:26:12.590 回答