2012-01-25 7 views
0

私は自分のウェブサイトでFacebookログインとログアウトを実装しようとしています。 Facebook PHP SDKを使用しています。次のようにFacebookログアウトがoffline_accessと連携していません

私が使用しているコードは次のとおりです。

ログイン

$facebook = new Facebook(array('appId' => APP_ID, 
          'secret' => APP_SECRET 
          )); 

    $param = array(); 
    $param["scope"] = array("email","offline_access","publish_stream"); 

    $loginUrl = $facebook->getLoginUrl($param); 

ログアウト

$logoutUrl = $facebook->getLogoutUrl(); 

問題は、ログアウトURLは、Facebookのユーザーをログアウトすることができないです。

スコープパラメータから「offline_access」を削除すると、logout URLが正常に動作しています。

また、PHP SDKのexample.phpファイルに上記のスコープを実装しました。結果は同じでした。

誰でも助けてもらえますか?

答えて

1

。 Facebookからログインした後、私は関数$facebook->destroySession();を呼び出した後、関数$facebook->getLogoutUrl();を呼び出しました。

destroySession()機能のため、access_tokenがFacebookから返されました。getLogoutUrl()機能から生成されたログアウトURLがFacebookからユーザーをログアウトできませんでした。

destroySession()機能を削除した後、私のコードは正常に動作しています。

0

FBからユーザーをログアウトした後で、セッションCookieをクリアしていない可能性があります。

1) download the latest php sdk. 
2) Make sure you specify the 'domain' parameter when you create the $facebook object. 
3) Before you redirect the user to FB logout, clear their session with 
$facebook->setSession(null); - alternatively, you can use FB.logout() in the javascript SDK. 

更新:あなたはAPPIDとキーを指定している として、またあなたのドメイン名として「ドメイン」を与えます。 setSessionの

例:私は私の問題を発見 example1

+0

こんにちはSomnath、 ありがとうございます。 最新のphp sdkをダウンロードしました。 facebook-php-sdk-v3.1.1-25-g6c82b3f.zip。 srcフォルダには2つのPHPページがあります。 しかしいずれのページでも、setSession()という名前の関数が見つかりませんでした。 また、$ facebookオブジェクトを作成するときにサンプル使用ドメインパラメータを表示することもできます。 ところで、私はスコープ配列に "offline_access"は必要ないと思う。 しかし、私はこのエラーを解決することができればいいです。 よろしく、 Sourav –

関連する問題