我想在我的网页中加入facebook登录/注册插件。每当我点击登录或点击退出时,都应触发相应的 FB.Event.subscribe 。但在我的情况下,登录和注销成功。但这些事件都没有被触发。 在下面找到代码,
<div id="fb-root"></div>
window.fbAsyncInit = function(){
FB.init({
appId : 'xxxxxxxxxxxxxxxxxxxx',
status : true,
cookie : true,
oauth : true,
xfbml : true
});
FB.Event.subscribe('auth.login', function(response) {
FB.api('/me', function(response) {
alert('You have successfully logged in, '+response.name+"!");
});
});
FB.Event.subscribe('auth.logout', function(response) {
FB.api('/me', function(response) {
alert('You have successfully logged out, '+response.name+"!");
});
});
FB.getLoginStatus(function(response) {
if (response.session) {
alert('Hello');
}
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
如果有人能在这里帮助我,那将是很棒的。提前谢谢。
答案 0 :(得分:0)
这些事件仅在用户状态CHANGES时触发。
例如,对于auth.login
,当用户尚未授权您的网页然后提供授权时,就会发生此更改。在这第一次,用户没有您的页面的Facebook Cookie值。当他或她授权您的页面时,cookie值将由FB JS SDK编写,您的脚本将感知auth.login
更改事件。下次,当您的用户再次返回时,cookie值应该已经存在,并且事件不会触发,因为状态没有变化。
auth.login
事件也会在用户已经授权您的应用时触发,但会清除Cookie。在下一次访问中,FB JS SDK将不得不再次编写cookie并且事件将会发生。
我不确定auth.logout
事件,因为我不使用它,但据我所知,它与您的应用程序无关,而是与您用户的Facebook帐户的会话状态有关。
我建议您在执行脚本期间监控页面上的Cookie值更改,以便更好地了解事件发生的时间。