2011-01-24 13 views
1

Facebook APIを初めて使用しています。この問題を解決するために既に多くの情報を検索していますが、見つけられません。 ユーザーがFacebookからログアウトしても、ブラウザは最後のセッションのCookieを取得しています。Facebookのログアウト後にアプリケーションセッションが残っています

完了の仕方は次のとおりです。 1.ユーザーがFacebookにログインしています。 2.アプリケーションを開きます。 3.フェイスブックからログアウトしました。 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 Bad Request

ユーザがfacebookでログアウトしたときにクッキーをクリアする必要があると思いますが、PHP SDKでそれを行う方法がわかりません。助けてください。ありがとう!

答えて

0

これは以前ここに解決されることがあります。How to log out users using Facebook Connect in PHP and Zend?

+0

ここで、$ this-> getConfig() - > getAppId();私は同じ機能のためにfacebook php sdkを見ましたが、私は見つけました。 –

+0

私はPHPのSDKを一度も使ったことはありませんが、あなたは 'define( 'APP_ID'、 '12346789'); –

1

私はFacebookのからのJavascriptを介してユーザのログアウトをキャッチしようとした場合、JSはクッキーをクリアしてコントローラ機能にリダイレクトされますが、それは私のために働いていません。私のアプリは、ユーザーがログアウトしてもエラーが発生してロードされる古いセッションがまだ残っています。

しかし、私の問題は私のセッションのチェックに次の2行のコードを追加することで解決私が得た:

$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 
} 
関連する問題