2011-01-24 37 views
1

我是新來的Facebook API,我已經搜索了一個LOT來解決這個問題,但我找不到一個。 即使在用戶註銷Facebook之後,瀏覽器仍然獲取上次會話的cookie。facebook會議登錄後仍然存在應用會話

以下是它是如何完成的: 1.用戶登錄到facebook。 2.打開應用程序。 3.退出Facebook。 3.打開應用程序(在未登錄),應用程序將具有錯誤加載

消息:的file_get_contents(https://graph.facebook.com/me/friends?access_token=157847364248123|2.pqWqIaCD8BKobvG_kJy9sA__.3600.1295859600- 100001714363073 | QfoJpTH-slOry2K1FepeyW8z5f8)[function.file-get-contents]:無法打開流:HTTP請求失敗! HTTP/1.0 400錯誤請求

我想我需要清除cookie時,用戶在Facebook登出登出,但我不知道如何在PHP SDK中做到這一點。請幫忙。謝謝!

回答

1

我試圖通過JavaScript從Facebook捕捉用戶註銷,那麼JS會重定向到其清除餅乾控制器功能,但是,這並不爲我工作。我的應用程序仍舊收到舊會話,即使用戶註銷,我的應用程序也會加載錯誤。

但我得到的只是這兩行代碼添加到我的會話檢查解決我的問題:

$uid = $facebook->getUser(); 
$me = $facebook->api('/me'); 

當此檢查失敗,頁面會被重定向至Facebook登錄頁面。這是我的代碼的樣子:

$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXX', 
'secret' => 'XXXXXXXXXXXXXXXXXXX', 
'cookie' => true, 
)); 

$session = $facebook->getSession(); 
$me = NULL; 

if ($session) 
{ 
    try 
    { 
     $uid = $facebook->getUser(); 
     $me = $facebook->api('/me'); 

     /// OTHER PROCESS 

     $this->load->view('app_page', $data); 
    } 
    catch (FacebookApiException $e) 
    { 
     error_log($e); 
     $this->output->set_header("Location: http://www.facebook.com, TRUE, 302"); 
    } 
} 
else 
{ 
    /// GO TO PERMISSION REQUEST 
}