单击“Facebook登录”按钮时是否会触发任何事件,但是没有其他时间?
我希望用户可以选择退出我的网站,即使登录Facebook也是如此。我在其用户数据中设置了“AutoLogin”字段。
当AutoLogin为False,点击了Facebook Login按钮时,我希望用户再次登录。
在相关的说明中,我注意到当用户登录FB并单击Facebook登录按钮时,会短暂显示Facebook弹出窗口。有没有办法避免这个简短的弹出窗口?再次,解雇Javascipt会采取适当的行动吗?
答案 0 :(得分:2)
我发现此订阅了" login_event"只有在身份验证过程正在进行之后才会回来。因此,如果您正在尝试使用"等待Facebook"来显示加载模式。为了显示一个缓慢的2G连接,那么这并不能真正帮助你。正如Dave所提到的,由于Facebook在iframe中显示了它的按钮,因此您无法为其创建事件监听器。
然而,在文档之外,你会发现Facebook正在广泛使用窗口消息总线来与它的iframe交谈。
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event){
if(event.data.indexOf('_FB_') === 0){// these are facebook messages sent from it's iframes
if(event.data.indexOf('proxy_ready') > 0){
console.log('facebook ready');
}
}
}
在登录过程中控制记录带有时间戳的所有消息并找出要关闭的消息是有帮助的。例如:
2016-12-14 15:13:38.024 app.js:162 FB.init
2016-12-14 15:13:39.257 app.js:1366 _FB_f120116a3bc6178data&logged_in=false&xd_action=proxy_ready
2016-12-14 15:13:43.473 app.js:1366 _FB_f120116a3bc6178type=resize&cb=f291741ffe877f&width=300&height=39
2016-12-14 15:13:47.933 app.js:1366 _FB_f120116a3bc6178xd_action=plugin_ready&name=f66bbdc3fb088&cb=f291741ffe877f&domain=xxx.xxx&origin=https%3A%2F%2Fxxx.xxx%2Ff120116a3bc6178&relation=parent.parent
2016-12-14 15:13:47.934 app.js:1366 _FB_f120116a3bc6178type=resize&width=164&height=39&reposition=false&cb=f291741ffe877f&domain=xxx.xxx&origin=https%3A%2F%2Fxxx.xxx%2Ff120116a3bc6178&relation=parent.parent
clicked button IN FB popup here:
2016-12-14 15:14:24.571 app.js:1366 _FB_f120116a3bc6178type=resize&cb=f291741ffe877f&width=300&height=39
2016-12-14 15:14:29.053 app.js:1366 _FB_f120116a3bc6178xd_action=plugin_ready&name=f66bbdc3fb088&cb=f291741ffe877f&domain=xxx.xxx&origin=https%3A%2F%2Fxxx.xxx%2Ff120116a3bc6178&relation=parent.parent
2016-12-14 15:14:29.055 app.js:1366 _FB_f120116a3bc6178type=refreshLoginStatus&cb=f291741ffe877f&domain=xxx.xxx&origin=https%3A%2F%2Fxxx.xxx%2Ff120116a3bc6178&relation=parent.parent
2016-12-14 15:14:29.071 app.js:1366 _FB_f120116a3bc6178type=resize&width=164&height=39&reposition=false&cb=f291741ffe877f&domain=xxx.xxx&origin=https%3A%2F%2Fxxx.xxx%2Ff120116a3bc6178&relation=parent.parent
2016-12-14 15:14:30.188 app.js:1366 _FB_f120116a3bc6178cb=fbcdc5c882b3bc&domain=xxx.xxx&origin=https%3A%2F%2Fxxx.xxx%2Ff120116a3bc6178&relation=parent&code=AQCl6y6TvwzareonnVCLEFWVglwDApABbs3ATKnbd6iLSZbKZ...mwZDZD&expires_in=6331&base_domain=xxx.xxx&https=1
2016-12-14 15:14:30.193 app.js:171 login_event
2016-12-14 15:14:30.193 app.js:172 connected
2016-12-14 15:14:30.193 app.js:173 Object {authResponse: Object, status: "connected"}
2016-12-14 15:14:30.199 app.js:246 FB.getLoginStatus
2016-12-14 15:14:30.201 app.js:229 connected to FB app
2016-12-14 15:14:30.202 app.js:253 FB.api
答案 1 :(得分:1)
您可以订阅登录事件。
FB.Event.subscribe('auth.login', function(response)
{
console.log("login_event");
console.log(response.status);
console.log(response);
}
);
答案 2 :(得分:0)
您可能已经看过这个,但请看一下您可以听的these events。