Обход Адама отлично работает, но по ряду причин он мне не совсем подходит. Мое решение состояло в том, чтобы получить все необходимые пользовательские данные из авторизации JS и записать их в сеанс php. Надеюсь, это кому-нибудь поможет.
Функция аутентификации JS:
FB.login( function( response ) {
if ( response.authResponse ) {
FB.api('/me', function( response ) {
$.ajax({
url: 'action.php',
type: 'POST',
data: {
id: response.id,
name: response.name,
birthday: response.birthday,
location_id: response.location.id,
location_name: response.location.name,
gender: response.gender,
email: response.email
},
success: function() {
location.href = 'some-page.php';
}
});
});
} else {
alert("Please agree to the Facebook permissions.");
}
}, { scope:'user_location, user_birthday, email, publish_actions' } );
action.php
session_start();
$_SESSION['user_info']['id'] = $_REQUEST['id'];
$_SESSION['user_info']['name'] = $_REQUEST['name'];
$_SESSION['user_info']['birthday'] = $_REQUEST['birthday'];
$_SESSION['user_info']['location']['id'] = $_REQUEST['location_id'];
$_SESSION['user_info']['location']['name'] = $_REQUEST['location_name'];
$_SESSION['user_info']['gender'] = $_REQUEST['gender'];
$_SESSION['user_info']['email'] = $_REQUEST['email'];