Ajax 如何在Facebook注销后更新我的登录/注销链接
我正在开发一个测试页面,以确保Facebook登录按钮功能正确 我让FB按钮在用户登录和注销FB时正常工作。但我不知道如何更新我的站点标题以切换登录/注销链接 在FB登录/注销后,我使用与常规登录/注销期间相同的所有数据更新站点会话,但由于某些原因,标题没有在那里更新Ajax 如何在Facebook注销后更新我的登录/注销链接,ajax,facebook-graph-api,session-variables,authentication,Ajax,Facebook Graph Api,Session Variables,Authentication,我正在开发一个测试页面,以确保Facebook登录按钮功能正确 我让FB按钮在用户登录和注销FB时正常工作。但我不知道如何更新我的站点标题以切换登录/注销链接 在FB登录/注销后,我使用与常规登录/注销期间相同的所有数据更新站点会话,但由于某些原因,标题没有在那里更新 知道怎么修吗?仅供参考,我在这里测试这些东西:好吧,为此,您必须使用Facebook的Javascript API来检测用户何时登录或注销,然后执行AJAX请求以更新您的标题。这将通过FB.Event.subscribe完成,如下
知道怎么修吗?仅供参考,我在这里测试这些东西:好吧,为此,您必须使用Facebook的Javascript API来检测用户何时登录或注销,然后执行AJAX请求以更新您的标题。这将通过FB.Event.subscribe完成,如下代码段所示:
window.fbAsyncInit = function() {
FB.init({
appId : 'YOURAPPID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'http://www.yourdomain.com/channel.html', // Custom Channel URL
oauth : true //enables OAuth 2.0
});
// retrieve the login status.
FB.getLoginStatus(function(response) {
if (response.authResponse) update_user_is_connected();
else update_user_is_not_connected();
});
// This will be triggered as soon as the user logs into Facebook (through your site)
FB.Event.subscribe('auth.login', function(response) {
// Here you would update your header.
update_user_is_connected();
});
};
您可以在此处阅读有关FB.Event.subscribe的更多信息:
请注意,这段代码取自我的一位同事。我已经在做所有这些了,并发送了一个AJAX调用来让此人登录和注销。由于某些原因,只是普通网站没有反映出这一点。如果你查看我发布的链接,无论你是登录还是退出fb,我在网站上为更新generall用户会话而调用的ajax不会反映右上角的登录/注销链接。是的,这显然是因为你没有检查(在你的PHP中)用户是否已登录。这可以通过getUser()完成;你是说在页面的顶部?您指的是哪个getUser函数?我很困惑。是的,我的意思是在页面的顶部。Facebook的PHP API有一个名为getUser()的函数。如果用户未登录,此函数将返回0;如果用户已登录,则返回用户ID。尽管如此,在混合FB标记和他们的PHPSDK时,我还是发现了一些非常奇怪的行为(比如,按钮上说你已登录,但PHP上说不是这样)。因此,我建议使用Facebook SDK的GetLoginUrl()来检索有效的URI,而不是使用它们的按钮。