facebook logout только делает выход из веб-сайта не из Facebook?

Я делаю вход в facebook и выходим с веб-сайта. Поэтому, если пользователь хочет войти на сайт, он нажмет на facebook login, и когда он нажмет на выход, он автоматически выйдет из обеих сторон как с Facebook, так и с сайта. Итак, все для этого я сделал свой код таким, как этот. В index.html мой код похож на этот

<div id="fb-root"></div> <script type="text/javascript"> //<![CDATA[ window.fbAsyncInit = function() { FB.init({ appId : 'XXXXXXXXXXXXX', // App ID channelURL : '', // Channel File, not required so leave empty status : true, // check login status cookie : true, // enable cookies to allow the server to access the session oauth : true, // enable OAuth 2.0 xfbml : false // parse XFBML }); }; // logs the user in the application and facebook function login(){ FB.getLoginStatus(function(r){ if(r.status === 'connected'){ window.location.href = 'fbconnect.php'; }else{ FB.login(function(response) { if(response.authResponse) { //if (response.perms) window.location.href = 'fbconnect.php'; } else { // user is not logged in } },{scope:'email'}); // which data to access from user profile } }); } // Load the SDK Asynchronously (function() { var e = document.createElement('script'); e.async = true; e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; document.getElementById('fb-root').appendChild(e); }()); //]]> </script> <a href='#' onclick='login();'>Facebook Login</a> 

и в fbconnect.php мой код похож на этот

 <?php require 'src/facebook.php'; $facebook = new Facebook(array( 'appId' => 'XXXXXXXXXXXXXXXXX', 'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'cookie' => true, )); $user = $facebook->getUser(); $loginUrl = $facebook->getLoginUrl(); //echo "<a href='$loginUrl'>login</a>"; $logoutUrl = $facebook->getLogoutUrl(); //echo $loginUrl; if($user){ $_SESSION['user_info'] = $user; $_SESSION['user_pro']= $facebook->api('/me'); echo $_SESSION['user_pro']['first_name']; echo $_SESSION['user_pro']['last_name']; echo '<pre>'; //print_r($_SESSION); echo '</pre>'; } else{ echo 'not logged in '; } echo "<a href='logout.php'>log out </a>" ?> 

и в logout.php мой код выглядит так

 <?php require 'src/facebook.php'; //including the facebook php sdk $facebook = new Facebook(); $token = $facebook->getAccessToken(); $url = 'index.html'; $facebook->destroySession(); session_destroy(); header('Location: '.$url); ?> 

Все это делает выход из системы, но он не выполняет выход из facebook. Так может кто-то любезно сказать мне, как сделать выход из обеих facebook и веб-сайта одновременно? Любая помощь и предложения будут весьма полезны. благодаря

Не пытайтесь переадресовать <a href='logout.php'>log out </a>

нужно только на действие facebook session destroy

 if(isset($_GET['action']) && $_GET['action'] === 'logout'){ $facebook->destroySession(); } 

После этого вы можете использовать сеанс сайта для уничтожения. Для получения дополнительной информации: – PHP SDK – выход в Facebook

Да, это не приведет к выходу из Facebook.

Я вижу, что вы используете JS SDK, поэтому вам нужно использовать JS API для выхода из системы. Вы можете сделать так:

 echo '<a href="#" onclick = "fb_logout();" >Logout </a>'; 

Вам нужно добавить следующую функцию JS, я вижу, у вас уже есть FB.login

 <script> function fb_logout(){ if (FB.getAuthResponse()) { FB.logout(function(){ top.location.href = 'logout.php' }); }else{ top.location.href = 'logout.php' } } </script> 

Убедитесь, что у вас есть следующий JS в файле fbconnect.php, чтобы вызвать функции FB. Таким образом, полный код

 <div id="fb-root"></div> <script type="text/javascript"> window.fbAsyncInit = function() { FB.init({appId: '<?php echo FACEBOOK_APP_ID ; ?>', status: true, cookie: true, oauth: true, xfbml: true}); }; (function() { var e = document.createElement('script'); e.async = true; e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; document.getElementById('fb-root').appendChild(e); }()); function fb_logout(){ if (FB.getAuthResponse()) { FB.logout(function(){ top.location.href = 'logout.php' }); }else{ top.location.href = 'logout.php' } } </script> 

В файле logout.php вы можете обрабатывать код выхода для своего сайта.

Кроме того, для генерации выхода из системы с помощью PHP SDK вам необходимо выполнить

 $params = array( 'next' => 'page after logout' ); $logouturl = $facebook->getLogoutUrl($params); // $params is optional. <a href="<?php echo $logouturl; ?>"> Logout </a> 

Я бы предложил использовать JS SDK для выхода из системы, и он также выходит из Facebook.