Обновление: Автономный доступ в устарел . Вместо этого используйте что-нибудь другое.
Если вы хотите использовать токен доступа пользователя даже после того, как он вышел из вашего приложения, вы должны запросить разрешение offline_access
.
С Facebook PHP SDK v3 ( см. На github ) это довольно просто. Чтобы войти в систему с разрешением offline_access
, вы спрашиваете его при создании URL-адреса для входа. Вот как ты это делаешь.
Получить токен автономного доступа
Сначала вы проверяете, вошел ли пользователь в систему или нет:
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
$user = null;
}
}
Если это не так, вы генерируете URL "Логин с Facebook", запрашивая разрешение offline_access
:
if (!$user) {
$args['scope'] = 'offline_access';
$loginUrl = $facebook->getLoginUrl($args);
}
А затем отобразите ссылку в вашем шаблоне:
<?php if (!$user): ?>
<a href="<?php echo $loginUrl ?>">Login with Facebook</a>
<?php endif ?>
Затем вы можете получить токен автономного доступа и сохранить его. Чтобы получить его, позвоните:
if ($user) {
$token = $facebook->getAccessToken();
// store token
}
Использовать токен автономного доступа
Чтобы использовать токен автономного доступа, когда пользователь не вошел в систему:
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$facebook->setAccessToken("...");
И теперь вы можете делать вызовы API для этого пользователя:
$user_profile = $facebook->api('/me');
Надеюсь, это поможет!