2012-12-08 51 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中。我只是不知道 –