2012-09-12 113 views
1

你好,我正在使用最新的Facebook的PHP SDK爲我的應用程序。 我遇到了註銷問題。 這裏是我註銷的代碼。Facebook登錄後sdk返回用戶ID

<?php 
$logout = $facebook->getLogoutUrl(array(
    'next' => 'https://www.thevoucherlink.com/logout.php')); 
?> 

這是我logout.php:

<?php 
session_start(); 
unset($_SESSION['fb_uid']); 
session_destroy(); 
header('location:https://www.thevoucherlink.com/index.php?ref=logout'); 
?> 

從Facebook註銷用戶登錄超時後。但不是從我的應用程序。

$user_id=$facebook->getUser();

這個函數返回的用戶ID註銷後。

請幫我解決它。 在此先感謝。

+0

當我註銷兩次時它會註銷。 –

回答

1

嘗試解封會話一起移除FB的cookie,如:

session_start(); 
$fb_key = 'fbs_'."YOUR_FB_APP_ID"; 
setcookie($fb_key, '', time() - 3600, '', '/', ''); 
unset($_SESSION['fb_uid']); 
session_destroy(); 

那麼你可以嘗試做try..catch塊,是這樣的:

$userId = $facebook->getUser(); 
try { 
    $myDetails = $facebook->api('/me'); 
    //will return details if still loggedin 
} catch (Exception $e) { 
    //user has already logged out 
} 

編輯::您註銷 .PHP,嘗試做:

$facebook = new Facebook(array('appId' => 'your_id', 'secret' => 'your_secret')); 
//destroy the session 
$facebook->destroySession(); 

希望幫助

+0

我試過這段代碼,但它不工作。如果我刷新logout.php兩次比註銷。但不是單一印刷。 –

+0

請參閱附加代碼。 –

+0

嘗試{ $ myDetails = $ facebook-> api('/ me'); print_r($ myDetails); } catch(Exception $ e){ echo'loged out'; exit; } //仍然不工作:( –

0

scope中刪除offline_access- Facebook的登錄URL的參數。

0

可能是註銷鏈接正在從Facebook註銷用戶,而不是從您的應用程序註銷。

您必須使用$this->Auth->logout();從您的應用程序中註銷用戶。

嘗試使用PHP SDK與Javascript SDK的集成。