我使用Facebook JS SDK登录时遇到了一些问题。
好吧,当用户输入页面时,它会不断刷新 - window.location.reload();
中的FB.Event.subscribe('auth.login'...
被解雇,即使用户尚未登录。
这是我的剧本:
window.fbAsyncInit = function() {
FB.init({
appId : '445298832195237', // App ID
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Event.subscribe('auth.login', function(response)
{
$.ajax({async: false,
type: 'GET',
url: 'http://hfyt.pl/fb_register.php',
success: function(data)
{
//alert(data);
window.location.reload();
}
});
});
};
你可以在http://hfyt.pl/试用它(只需使用一些调试器取消注释window.location.reload())。我正在使用Chrome。
答案 0 :(得分:0)
据我所知,这就是发生的事情:
connected
状态,它刷新页面,步骤1-4。重复..这发生在每个页面加载,而不仅仅是第一次。为了避免这种情况,我建议你..
答案 1 :(得分:0)
我认为您可能需要使用FB.getLoginStatus来检查人们是否在页面加载时登录。但是,请保留任何重定向。 https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
然后使用FB.Event.subscribe仅监听用户登录及其响应更改的时间。
FB.Event.subscribe('auth.authResponseChange', function(response) { // reload here });
我认为那样做。