2010-05-08 58 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