如何正确登出Facebook

时间:2010-05-08 18:34:53

标签: facebook

这是一个重复的问题,我已经遵循了这些StackOverflow链接中提供的建议:

问题是 - 代码在90%的时间都有效。那是奇怪的部分。在我登录和退出的100次中 - 我遇到过这个问题5-6次,我的2个beta测试用户报告了同样的问题。

所以当它工作时 - 如果你点击退出链接 - 你得到facebook popup说 - 你被注销 - 当它不起作用 - 绝对没有任何反应 - 页面不刷新 - 它只是在那个页面上什么都不做。

这是点击退出时调用的javascript代码


function logout()
{
   FB.Connect.get_status().waitUntilReady(function(status) {
   switch(status) {
      case FB.ConnectState.connected:
        FB.Connect.logoutAndRedirect("http://www.example.com/login/logout");
        break;
      case FB.ConnectState.userNotLoggedIn:
        window.location = "http://www.example.com/login/logout";
        break;
}
});
return false;          
}


这是php代码:

$this->_auth->clearIdentity();
$face = Zend_Registry::get('facebook');
$fb = new Facebook($face['appapikey'], $face['appsecret']);
//$fb->clear_cookie_state();
$fb->expire_session();

任何人都经历过这种零星的问题。 感谢

1 个答案:

答案 0 :(得分:0)

它的外观和声音好像waitUntilReady函数永远不会“准备好”,从而阻止其余的代码执行。也许尝试以下内容,让我们知道它是否解决了问题:

function logout()
{
   var status = FB.Connect.get_status();
   switch(status) {
      case FB.ConnectState.connected:
        FB.Connect.logoutAndRedirect("http://www.example.com/login/logout");
        break;
      case FB.ConnectState.userNotLoggedIn:
        window.location = "http://www.example.com/login/logout";
        break;
   }
   return false;
}