Я пытаюсь использовать PHP Facebook SDK, чтобы регистрировать пользователей в facebook.
Я начал с использования файла примера, представленного в .zip, который я загрузил из GitHub.
Когда пользователи нажимают логин, они переходят на страницу аутентификации. После разрешения моего приложения они перенаправляются обратно на исходную страницу, где должен быть print_r пользовательский объект. Но это не так. При повторном нажатии кнопки входа в систему проскальзывает страница аутентификации (поскольку пользователь уже разрешил приложение), а затем объект печатается.
Anyhelp будет оценен.
<?php /** * Copyright 2011 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may obtain * a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ require '../src/facebook.php'; // Create our Application instance (replace this with your appId and secret). $facebook = new Facebook(array( 'appId' => '1111111111', 'secret' => 'xxxxxxxxxxxxxxxxxxxxxxx' )); // 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) { echo '1 <br>'; try { // Proceed knowing you have a logged in user who's authenticated. echo '2 <br>'; $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { echo '3 <br>'; error_log($e); $user = null; } } // Login or logout url will be needed depending on current user state. if ($user) { echo '4 <br>'; $logoutUrl = $facebook->getLogoutUrl(); } else { echo '5 <br>'; $loginUrl = $facebook->getLoginUrl(array( 'scope' => 'email,read_stream,publish_stream', 'display' => 'touch' )); } // This call will always work since we are fetching public data. $naitik = $facebook->api('/naitik'); ?> <!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> 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 echo '6 <br>'; 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 echo '7 <br>'; 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/naitik/picture"> <?php echo $naitik['name']; ?> </body> </html>