Логин из 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.
Если кому-то поможет (или, наоборот, что-то не получится) - пишите.
Во-первых, надо создать свое приложение (получить «секретный ключ» и идентификатор приложения). Я с трудом нашел ссылку, по которой это делается, так что делюсь: 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.
Если кому-то поможет (или, наоборот, что-то не получится) - пишите.
Комментарии доступны с OpenID (подробнее).