javascript - FB Connect 对话框未关闭

标签 javascript facebook

当我单击 FB 登录按钮时,会弹出 FB 身份验证对话框。输入我的 FB 凭据后,对话框会重定向到如下 URL:

https://www.facebook.com/dialog/permissions.request?wholeBunchOfQueryParameters

或者,如果我已经登录 FB,弹出对话框是:

https://www.facebook.com/dialog/oauth?wholeBunchOfQueryParameters

但这些是保持打开状态的空白对话框。一旦我关闭对话框,回调就会发生,但直到那时。这是 IE 和 Chrome 上的行为。

我确实工作得很好,我想当我买了一台新电脑时它就停止工作了,所以也许是环境问题。我认为从那时起它就起作用了,但也许不起作用。我恢复了我的代码的一个版本,它可以工作,但它也不再工作,因此进一步表明它是环境性的,但我不知道它可能是什么。我可能会躲在杂草丛中。

另外,还有一点信息,我正在本地开发,所以我使用 localhost:port。我对这个问题做了很多研究,确实看到有人说使用 127.0.0.1 而不是 localhost,所以我也尝试了,但没有什么区别。

知道为什么对话框无法关闭吗?

<fb:login-button perms="email,user_checkins" onlogin="afterFacebookConnect();" 
   autologoutlink="false" ></fb:login-button>
<div id="fb-root" style="display:inline; margin-left:20px;"></div>

<script language="javascript" type="text/javascript">
window.fbAsyncInit = function () {
    FB.init({ appId: 'myAppId',
        status: true, cookie: false, xfbml: true
    });
};

function afterFacebookConnect() {
    FB.getLoginStatus(function (response) {
        alert("Hi");
        var access_token = FB.getAuthResponse()['accessToken'];
        if (response.authResponse) {
            window.location = "../Account/FacebookLogin?token=" +
                   access_token;
        } else {
            alert(FB.getAuthResponse);
        }
    });
};
function logout() {
    FB.getLoginStatus(function (response) {
        var access_token = FB.getAuthResponse()['accessToken'];
        if (response.authResponse) {
            window.location = "../Account/Logout";
        } else {
            // user clicked Cancel
        }
    });    
};
$(document).ready(function () {
    if (document.getElementById('fb-root') != undefined) {
        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);
    }
});
</script> 

最佳答案

这是最近几天出现的已知错误(请参阅 https://developers.facebook.com/bugs/241915819261223 )。

好消息是 FB 的一位工程师刚刚声明了以下内容,因此我们应该很快就会看到这个问题得到解决:

We have a fix for this issue and it will be pushed soon. Stay tuned.

关于javascript - FB Connect 对话框未关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11255986/

相关文章:

javascript - 修改 Bootstrap 模态的默认 "dismiss"行为

javascript - 在 Facebook Flow 中使用 ES6 语法导出类失败

javascript - 使用 Javascript/jQuery 读取 JSON

javascript - OnClientClick 多次 javascript 调用

javascript - 如何解决 'FB is not defined' ?

javascript - Facebook javascript SDK FB.login 在 Facebook iFrame 中不起作用

java - HttpClient ssl 和 login.facebook.com

Facebook "Instagram-Style"拍照 Action

javascript - React Redux 未在 mapStateToProps 中获取状态

javascript - 在 redux 应用程序中初始化然后更新 textarea 值。