Ajax 如何在Facebook注销后更新我的登录/注销链接

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登录按钮功能正确

我让FB按钮在用户登录和注销FB时正常工作。但我不知道如何更新我的站点标题以切换登录/注销链接

在FB登录/注销后,我使用与常规登录/注销期间相同的所有数据更新站点会话,但由于某些原因,标题没有在那里更新


知道怎么修吗?仅供参考,我在这里测试这些东西:

好吧,为此,您必须使用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,而不是使用它们的按钮。