2012-12-08 49 views
0

我使用Facebook連接PHP SDK,允許用戶登錄到我的網站:註銷當用戶退出Facebook的

try { 
    $facebook = new Facebook(array(
     'appId' => $fbconfig['appid'], 
     'secret' => $fbconfig['secret'], 
     'cookie' => true, 
    )); 
} catch(Exception $o) { 
    print_r($o);  
} 

// Facebook Authentication part 
$user  = $facebook->getUser();  
$loginUrl = $facebook->getLoginUrl(
       array(
        'scope'   => 'email,user_likes,publish_actions,read_stream,friends_likes,user_checkins,user_location,friends_checkins,user_status', 
        'redirect_uri' => $fbconfig['baseurl'].'load-data.php', 
        'cancel_url' => $fbconfig['baseurl'].'/index.php' 
       ) 
      ); 

登錄URL被創建,並且用戶登錄到網站成功。問題是,當用戶在另一個選項卡中註銷Facebook時,我想要獲得該狀態並使用Facebook SDK從我的程序中註銷用戶。

如何在登出Facebook時將用戶登出?

感謝您閱讀我的問題。

回答

-3
 <script type="text/javascript"> 

     var int=self.setInterval(function(){checkSession()},1000); 

     function checkSession() { 
      var request = false; 
       if(window.XMLHttpRequest) { // Mozilla/Safari 
        request = new XMLHttpRequest(); 
       } else if(window.ActiveXObject) { // IE 
         request = new ActiveXObject("Microsoft.XMLHTTP"); 
       } 

       request.open('get', 'checksession.php', true); 
       request.send(); 
       request.onreadystatechange = function() { 

        if(request.readyState == 4) 
        { 
         var session = request.responseText; 
         if(session=="false") { 
          alert("Your Session has expired"); 
          window.location = "login.php"; 
         } 
        } 
       } 
       request.send(null); 
      } 

      </script> 

php腳本

$user = $facebook->getUser(); 

    if ($user) { 
     echo "false"; 
    } else { 
     echo "true"; 
    } 

Can't logout using Facebook API

我想,這也許有幫助。

+0

這已經是錯誤的代碼。如果($ user){echo}「false」; }我試過這個不行。 $ USER = $ Facebook的的getUser()仍然會返回甚至我登錄了Facebook上的用戶ID。 –

0

我不認爲你可以發現,當用戶從Facebook註銷不與FB會議搞亂直接,因爲這是從你的應用程序會話不同。我不這樣做,這是一個很好的想法。

另一種方法是從應用程序註銷用戶,但我不知道它是否能解決您的問題。

+0

必須有一些方法來確定用戶是否從Facebook註銷。並且它必須在php sdk中。我只是不知道 –