Не работает

Я пытаюсь разработать facebook login для веб-сайта, я попробовал пример с php-facebook-sdk даже после входа в facebook, $user variable все равно 0 даже после входа в facebook, она не отображает URL-адрес выхода из системы.

вызов $ facebook-> getUser (); функция всегда возвращается 0.

  require '../src/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( 'appId' => 'xxx', 'secret' => 'xxxx', )); // Get User ID $user = $facebook->getUser(); // We may or may not have this data based on whether the user is logged in. // // If we have a $user id here, it means we know the user is logged into // Facebook, but we don't know if the access token is valid. An access // token is invalid if the user logged out of Facebook. if ($user) { try { // Proceed knowing you have a logged in user who's authenticated. $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { error_log($e); $user = null; } } print_r($user); // Login or logout url will be needed depending on current user state. if ($user) { $logoutUrl = $facebook->getLogoutUrl(); } else { $statusUrl = $facebook->getLoginStatusUrl(); $loginUrl = $facebook->getLoginUrl(); } // This call will always work since we are fetching public data. $naitik = $facebook->api('/verity.vis'); ?> <!doctype html> <html xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <title>php-sdk</title> <style> body { font-family: 'Lucida Grande', Verdana, Arial, sans-serif; } h1 a { text-decoration: none; color: #3b5998; } h1 a:hover { text-decoration: underline; } </style> </head> <body> <h1>php-sdk</h1> <?php if ($user): ?> <a href="<?php echo $logoutUrl; ?>">Logout</a> <?php else: ?> <div> Check the login status using OAuth 2.0 handled by the PHP SDK: <a href="<?php echo $statusUrl; ?>">Check the login status</a> </div> <div> Login using OAuth 2.0 handled by the PHP SDK: <a href="<?php echo $loginUrl; ?>">Login with Facebook</a> </div> <?php endif ?> <h3>PHP Session</h3> <pre><?php print_r($_SESSION); ?></pre> <?php if ($user): ?> <h3>You</h3> <img src="https://graph.facebook.com/<?php echo $user; ?>/picture"> <h3>Your User Object (/me)</h3> <pre><?php print_r($user_profile); ?></pre> <?php else: ?> <strong><em>You are not Connected.</em></strong> <?php endif ?> <h3>Public profile of Naitik</h3> <img src="https://graph.facebook.com/verity.vis/picture"> <?php echo $naitik['name']; ?> </body> </html> 

Пользователь Facebook может вернуть 0, если пользователь не зарегистрирован. Случай, который у вас есть, означает, что вы зарегистрировали пользователя в facebook через ваше приложение . Это также не означает, что у вас есть разрешения на просмотр сведений о пользователе. Попробуйте этот простой пример, который я написал некоторое время назад, но все еще работает.

Теперь позаботьтесь, что это контроллер перенаправления. Как вы можете видеть, он проверяет и запрашивает пользователя. Используйте его в качестве «промежуточного» контроллера и основывайтесь на шаблоне логики HTML с помощью JSFBSDK или каждый раз, когда вам нужно, чтобы пользователь предпринял действие, перенаправляя его сюда (например, логин и т. Д.),

 // 0. We don't need to clear session require_once realpath(dirname(__FILE__)) . 'facebook.php'; $current_url = ''; // replace $facebook = new Facebook(array( 'appId' => '', 'secret' => '', )); $fbCurrentUserID = $facebook->getUser(); // 1. If we cant get the user log him in and request permissions This requests combined permissions (basic + post) if (!$fbCurrentUserID){ $loginUrl = $facebook->getLoginUrl(array( 'scope' => 'email, publish_actions', // Put the permissions you like 'redirect_uri' => $current_url, // Replace here )); die(header('Location: ' . $loginUrl)); } // 2. So we do have a current FB user. Lets try to read data (Maybe he declined perms) try { $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { // 2.b Log any error and retry please die(header('Location: /')); } //Continue your code execution here after all up above went well