Всем привет! Сегодня рассмотрим, как авторизовывать пользователей через Facebook , используя Facebook API .

Как сделать авторизацию пользователей через Facebook.

Всем привет! Сегодня рассмотрим, как авторизовывать пользователей через Facebook, используя Facebook API.

Для начала перейдите по ссылке:

http://developers.facebook.com/apps/

Нажмите Create a New App.

Введите имя и выберите категорию.

Нажмите create app и введите капчу.

Вы увидите свой App id и App secret.

Создайте файл с названием composer.json со следующим содержанием.

{
  "require": {
   "facebook/php-sdk-v4": "4.0.*"
  }
}

Мы будем использовать composer. В терминале введем следующее:

composer install

В нашей папке с проектом создадим папку app, в которой создадим файл init.php.

<?php
  session_start();
  require_once 'vendor/autoload.php';

  Facebook\FacebookSession::setDefaultApplication('id', 'secret');
  $facebook = new Facebook\FacebookRedirectLoginHelper('your url');

  try {
   if($session = $facebook->getSessionFromRedirect()) {
    $_SESSION['facebook'] = $session->getToken();
    header('Location index.php');
   }

   if(isset($_SESSION['facebook'])) {
    $session = new Facebook\FacebookSession($_SESSION['facebook']);
    $request = new Facebook\FacebookRequest($session, 'GET', '/me');
    $request = $request->execute();
    $user = $request->getGraphObject()->asArray();
   }

  } catch(Facebook\FacebookRequestException $e) {
   // если facebook вернул ошибку
  } catch(\Exception $e) {
   // Локальная ошибка
  }
?>

5 строка) Вставьте свой id и секретный код.

6 строка) Вставьте свой url

Теперь скопируйте свой url, перейдите на страницу facebook с вашим приложением, слева выберите Settings, затем Advanced и вставьте свой url в поле с надписью Valid OAuth redirect URIs и нажмите Save Changes.

В корне сайта создадим файл index.php

<?php
  require_once 'app/init.php';
?>
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Auth with Facebook</title>
</head>
<body>
  <?php if(!isset($_SESSION['facebook'])): ?>
   <a href="<?php echo $facebook->getLoginUrl(); ?>">Войти через Facebook</a>
  <?php else: ?>
   <p>Вы авторизованы. <a href="signout.php">Выйти</a></p>
   <p>Ваше имя: <?php $user['name']; ?></p>
  <?php endif; ?>
</body>
</html>

Создадим в корне сайта файл signout.php

<?php
  require_once 'app/init.php';
  unset($_SESSION['facebook']);
  header('Location: index.php');
?>

Все, авторизация через facebook, используя facebook SDK, готова. Используйте ассоциативный массив user, чтобы получать информацию о пользователе. В примере показано, как вывести имя пользователя, используя данный массив. Чтобы просмотреть все значения, которые там хранятся, выведите их через print_r();

Итак, на этом все. Теперь вы знаете, как сделать авторизацию через Facebook на своем сайте. Спасибо за внимание и удачного кодинга!