Как сделать авторизацию пользователей через 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 на своем сайте. Спасибо за внимание и удачного кодинга!
-
- Михаил Русаков
Комментарии (3):
Что значит: В терминале введем следующее в каком терминале?! выражайтесь корректно
Ответить
в корне сайта? точнее..
Ответить
если уж решил написать, то пиши понятно, а так копипаст какой то с вырванным контентом откуда взялся require_once 'vendor/autoload.php'; ? это что за файл и что там? в каком терминале вводим?? откуда взялся класс Facebook? в общем полная фигня, абы что то написать))
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.