繁体   English   中英

FB.Event.subscribe和登录按钮

[英]FB.Event.subscribe and login-button

在我的页面上,有FB登录按钮代码。 用户可以通过使用FB登录按钮通过Facebook授权来加入我的网站。 我的网站允许用户注销,其中许多人喜欢这样做。

在为我的站点授权FB帐户后,请注销我的站点,因为会话事件永远不会触发(除非我取消了它的授权),所以我无法再登录。 我按FB登录按钮,将打开一个白页,然后立即关闭,没有任何反应。 这似乎是因为FB会话没有更改(它已经存在),所以该事件从未触发。 因此,我想知道是否除了隐藏FB的登录按钮并建立自己的会话(如果存在)之外,是否还有其他解决方法。 我尝试了“ auth.login”,但也没有触发。

按钮:

<fb:login-button perms="email,user_about_me,user_birthday">Login with Facebook</fb:login-button>

事件:

 FB.Event.subscribe('auth.sessionChange', function (response) {
                        document.location.href = "/FacebookLogin.aspx";
                    });

重现步骤:

  1. 单击FB登录并授权应用程序(在本例中为我的网站)。 用户被重定向到我的FB登录页面,并在我的网站上创建了一个帐户。 用户现在登录到我的网站。

  2. 使用我的网站注销按钮注销我的网站

  3. 单击FB登录按钮以重新登录站点。 在此应将用户从步骤1重定向回该页面,以便他们可以登录到该站点。

在第3步中发生的所有事情是弹出白色页面几秒钟然后关闭。 该网站已经获得授权,并且不会触发会话事件。

如果我使用一个浏览器授权,然后使用其他浏览器返回,也会发生这种情况。 刚得到弹出窗口,它关闭并且什么也没有发生。 我必须错过一些重要的事情。

我遇到了同样的问题,但是过了一会儿,我这样做来解决了这个问题:

function after_login_button(){
    FB.getLoginStatus(function(response) {
        if (response.status=="connected") {
            //User logged in! Do your code here
        }
    }, true);
}

您还需要在登录按钮上调用onlogin事件:

<fb:login-button onlogin="after_login_button()" perms="email,user_about_me,user_birthday">Login with Facebook</fb:login-button>

这对我有用=)。

PS-顺便说一句,我正在使用OAuth 2.0,您也应该将应用程序迁移到它,因为在开发人员区域中,他们说:“请记住,所有应用程序必须在10月1日之前迁移到OAuth 2.0”。

对不起,最终英语错误= S

请确保您正在执行FB.Event.subscribe

window.fbAsyncInit = function() {
FB.init({
......
)};

FB.Event.subscribe('auth.login', function(response){
.....
)};

};

我有同样的问题。 将其放入fbAsyncInit之后,它开始接受事件“ auth.login”。

希望这对您有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM