2010-05-08 30 views
1

的这是一个重复的问题,我都遵循这两个在这些StackOverflow的链接提供的建议:如何正确注销Facebook的

的问题是 - 代码在90%的时间内工作。那是奇怪的部分。在100次登录和登出之后 - 我已经经历了5-6次这个问题,我的2个测试用户报告了同样的问题。

所以,当它工作 - 如果你点击注销链接 - 你得到Facebook弹出窗口说 - 你被注销 - 当它不工作 - 绝对没有任何反应 - 页面不刷新 - 它只是坐在那页面无所事事。

这是被称为上点击注销

 

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;   
} 


这将JavaScript代码的PHP代码:

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

任何人都经历过这样的偶发性。 谢谢

回答

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; 
} 
+0

感谢达斯汀 - 我将使用这个代码,并会尽快给你 - 因为这很少发生,我可能会需要一些时间.... ....我会很快发布我的结果 - 感谢您的时间 – Gublooo 2010-05-10 20:58:07

+0

只是想知道它到目前为止如何工作,如果你已经看到错误再次发生? – defines 2010-05-18 19:20:57