2011-08-22 55 views
-2

你好,我正在嘗試使用file_get_contents註銷。Facebook登出

這裏是我的代碼

<?php echo file_get_contents("http://www.facebook.com/logout.php"); ?> 

我不能夠註銷來自Facebook。

有人能幫助

感謝

+0

我認爲這是一個有效的問題。 Rajat,Facebook會阻止您的請求,因爲user_agent未設置。在你的'file_get_contents'行之前,用'ini_set('user_agent','Mozilla/5.0(compatible; Googlebot/2.1; + http://www.google.com/bot.html)'這樣的一行設置用戶代理) ;'當然,你需要查詢字符串中的憑證,像Rijk建議 –

回答

2

註銷涉及比做一個簡單的HTTP請求多得多。首先,你需要你試圖註銷的用戶的會話ID。當您執行此代碼時,您的服務器實際上是執行請求的服務器,而不是使用您系統的用戶(並登錄到Facebook)。所以Facebook不知道你想要註銷的是誰。

如果你真的想這樣做,你應該設置一個Curl會話,並傳遞會話ID。但更容易的是,爲用戶提供一個鏈接。如果他們轉到URL,他們的會話ID將自動傳遞。

+0

我有會話ID。如何設置捲曲會話請告訴 –

+0

以下是一個教程:http://www.smooka.com/blog/2009/07/24/maintaining-php-session-when-using-curl/ – Rijk

0

以下添加到您的網站頁面的最開始

session_start(); 

if($_GET['logoutfrmfb']=="logout") 
{ 
    unset($_SESSION['fb_{your app id}_code']); 
    unset($_SESSION['fb_{your app id}_access_token']); 
    unset($_SESSION['fb_{your app id}_user_id']); 
} 

查找和編輯的src/base_facebook.php以下行(可能是線506-515)

public function getLogoutUrl($params=array()) { 
return $this->getUrl(
    'www', 
    'logout.php', 
    array_merge(array(
    'next' => $this->getCurrentUrl().'?logoutfrmfb=logout', 
    'access_token' => $this->getAccessToken(), 
    ), $params) 
    ); 
    } 

作品我!