1

FB PHP SDKを使用して、ユーザーのFBアクセストークンなどを取得しています。

すべての情報の取得が完了した後、ユーザーをログアウトしようとしていますが、機能しません。デバッグの目的で、私はこれを行っています:

$facebook = new Facebook(array(
        'appId' => FB_APP_ID,
        'secret' => FB_SECRET
    ));
$params = array( 'next' => site_url('welcome/logout') );
$link = $facebook->getLogoutUrl($params); // $params is optional. 
echo $link;

これは私にこのようなリンクを与えます:

https://www.facebook.com/logout.php?next=http%3A%2F%2Fexample.com%2Fwelcome%2Flogout&access_token=xxxxxxxx

ブラウザでそのURLを指定すると、コールバックURLにリダイレクトされますが、その直後にFacebook.comにアクセスすると、まだログインしています。

私は何が間違っているのですか?

JS SDKを使用してみましたが、他のすべてがサーバー側で行われているため(PHP SDKを使用)、機能しません。したがって、FB.logout()JS SDKを使用して呼び出すと、と表示されますLogout called without access token

編集

先に進む前に、誰かがこれを確認できると思います。ログアウトURLをたどると、実際にFacebookからログアウトしますか、それともアプリとユーザー間のセッションを終了しますか?

もしそうなら、Facebookからユーザーを完全にログアウトする方法はありますか?(私は推測していません)。

4

1 に答える 1

1

RE:JS SDKを使用すると、JSSDKとPHPSDKの両方を同時に使用できますが、現在は交換可能です(約1年前から使用されています)。したがって、JS方式の方が適している場合は、それを試してみることをお勧めします。

RE「編集」:はい、Facebookから完全にログアウトします。

さて、オープニング機能の質問です。あなたが望むシナリオは開発中に起こりますが、私はその理由を特定したことはありません。クッキーが間違ったドメインに保存されていることに関係していると思います(Facebookはベースドメインと思われるものを保存します。ベースドメインをいじったり、同じベースドメインに2つのアプリケーションがある場合は、それらを取得します。ねじれ)。

クッキーをクリアすると、それが整理されます。次に、Facebookの設定でドメインを操作しないようにしてください。そうすれば、ドメインが再表示されないことを願っています。(トリガーを正確に特定したことは一度もないので、うまくいけばいいのですが、開発が終了した後、安定したアプリにそれが起こったことはありません。)

于 2012-06-22T07:53:06.000 に答える