Логин из Facebook. Как это работает.

Вспомнил, что совсем забыл рассказать, как я сделал авторизацию из Фейсбука. Итак, как это делается?

Во-первых, надо создать свое приложение (получить «секретный ключ» и идентификатор приложения). Я с трудом нашел ссылку, по которой это делается, так что делюсь: http://facebook.com/developers.

Во-вторых, куда-то на сайте воткнуть ссылку вида https://www.facebook.com/dialog/oauth?client_id=ID-приложения&scope=email&redirect_uri=адрес-куда-вернется-результат-запроса.

По сути, при нажатии на эту ссылку Facebook смотрит, залогинен ли пользователь, спрашивает пользователя разрешения предоставить вашему приложению требующуюся информацию (выставляются права доступа для приложения) и возвращает кодированный ответ. Код мы снова гоним к Фейсбуку, получая token (типа временный аусвайс на работу), а затем получаем данные пользователя. Все довольно просто:

$app_id='ID-приложения';
$app_secret='секр-ключ-приложения';

$code=$_REQUEST["code"];
$token_url="https://graph.facebook.com/oauth/access_token?client_id=".$app_id."&redirect_uri=".urlencode($my_url)."&client_secret=".$app_secret."&code=".$code;
// Получаем token
$access_token=file_get_contents($token_url);

// А теперь, с token'ом наперевес, считываем информацию
$graph_url="https://graph.facebook.com/me?".$access_token;
$e=file_get_contents($graph_url);


А теперь можно сделать $e=json_decode($e); и использовать данные, как заблагорассудится. Я, например, беру свойства $e->link, $e->name и $e->email.

Если кому-то поможет (или, наоборот, что-то не получится) - пишите.
Tatarnikoff (25 мар 2011г, 17:08) #
Интересно, а на WP можно это как-то реализовать?
V.exeR (25 мар 2011г, 18:08) #
u7790 Tatarnikoff: ты так говоришь, будто WP - какой-то отдельный язык :D Тут же все в отдельном скрипте выполняется. Потом я просто создаю учетку в базе на основе полученных данных. Кто тебе мешает сделать так же?
konstantin24 (26 мар 2011г, 08:32) #
Спасибо за местер-класс,попробую реализовать вышесказанное.