我正在使用PHP SDK 3.x.x和Javascript SDK的混合登录Facebook身份验证。当我们单击登录按钮时,会出现窗口,并在填写凭据并提交后不刷新页面。 FB.Event.subscribe('auth.login')似乎没有触发。有什么问题?
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $facebook->getAppId(); ?>',
oauth : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
// whenever the user logs in, we refresh the page
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
FB.Event.subscribe('auth.logout', function(response) {
window.location.reload();
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
答案 0 :(得分:0)
据我所知,这个登录过程是使用AJAX处理的,这就是为什么页面被部分刷新的原因。我不知道你面临的问题是什么。在我的解决方案中,我在页面的第一页使用了这个登录过程,并根据fb $ user和$ user_profile定义变量和会话。后来使用此变量更新页面的其他部分。 由于事件未被触发,您应该检查js并使用fb示例来了解他们的sdk如何工作 希望这对你有帮助。