使用PHP SDK注销Facebook?

使用PHP SDK注销Facebook?,php,facebook,sdk,logout,Php,Facebook,Sdk,Logout,这个例子实际上是从Facebook复制的 当我访问该页面时,行为很奇怪: 首先“登录”似乎可以正常工作。然后显示“注销”链接。但是当我点击它的时候 我再次看到完全相同的屏幕,再次出现“注销”链接。刷新也会达到同样的效果 屏幕 不过,在Facebook上查看时,我确实会被注销 如果我关闭浏览器并重新打开它,“登录”现在会正确显示 <?php require 'facebook.php'; $facebook = new Facebook(array( 'appId' => 'x

这个例子实际上是从Facebook复制的

当我访问该页面时,行为很奇怪: 首先“登录”似乎可以正常工作。然后显示“注销”链接。但是当我点击它的时候 我再次看到完全相同的屏幕,再次出现“注销”链接。刷新也会达到同样的效果 屏幕

不过,在Facebook上查看时,我确实会被注销

如果我关闭浏览器并重新打开它,“登录”现在会正确显示

<?php

require 'facebook.php';

$facebook = new Facebook(array(
  'appId' => 'xxxxxxxxxxxxxxx',
  'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
));

$user = $facebook->getUser();

if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

if ($user) {
  $params = array( 'next' => 'http://xxxxxxxxxx' );
  $logoutUrl = $facebook->getLogoutUrl($params);
} else {
  $params = array( 'redirect_uri' => 'http://xxxxxxxxxx' );
  $loginUrl = $facebook->getLoginUrl($params);
}

?>

<!doctype html>
<html>
  <head></head>
  <body>

    <?php if ($user): ?>
      <a href="<?php echo $logoutUrl; ?>">Logout</a>
    <?php else: ?>
      <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
    <?php endif ?>

    <?php if ($user): ?>
      Picture = <img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
      User Object = <?php print_r($user_profile); ?>
    <?php else: ?>
      User is not Connected.
    <?php endif ?>

  </body>
</html>

图片=/图片“>
用户对象=
用户未连接。
您可以尝试此代码。它只会销毁从您的站点保存的所有cookie。
这对我有用。。

创建一个logout.php文件

<?php 
session_start();            //start session
$_SESSION = array();    //clear session array
 session_destroy();      //destroy session
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Log Out</title>
</head>

<body>
<p>You have successfully logged out!</p>
<p>Return to the <a href="....index.php">Home</a> page</p>

</body>
</html>
使用$logoutUrl注销用户

<?php if ($user): ?>
<?php echo "Welcome, ".$me['first_name']. " " .$me['last_name']   ." <br />";
      echo "Id: " . $me['id'] ." <br />";  ?>

<a href="<?php echo $logoutUrl; ?>">  Logout </a> <br />

<?php else: ?>
  <a href="<?php echo $loginUrl; ?>"> 

   <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif"> </a>  
 <?php endif ?>



希望它能很好地工作

单击注销后清除所有cookies。是的-这里似乎有这样一个解决方案:尝试了很多其他解决方案,但这马上就成功了。
if ($user) { 
    $params = array( 'next' => 'http://....../logout.php' );
    $logoutUrl = $facebook->getLogoutUrl($params);
} else {
  $loginUrl = $facebook->getLoginUrl();
}
<?php if ($user): ?>
<?php echo "Welcome, ".$me['first_name']. " " .$me['last_name']   ." <br />";
      echo "Id: " . $me['id'] ." <br />";  ?>

<a href="<?php echo $logoutUrl; ?>">  Logout </a> <br />

<?php else: ?>
  <a href="<?php echo $loginUrl; ?>"> 

   <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif"> </a>  
 <?php endif ?>