Facebook PHP SDK, работающий с токенами доступа
Я ползал много разных ответов, но все еще немного не уверен, как мне быть с Facebookтокены доступа, Одна из основных проблем, с которыми я сталкиваюсь, связана с тем, какая информация хранится в моем браузере. Например, я захожу в приложение, срок действия токена истекает, и я не могу войти снова, если не очистить настройки cookie / приложения в браузере.
Я наткнулся на эту тему:Как продлить срок действия токена доступа после устаревания offline_access
Который показал мне, как создать токен расширенного доступа через php.
Мои вопросы:
1. Нужно ли хранить токен доступа где-нибудь?
2. Что происходит, когда токен доступа истекает или становится недействительным? В настоящее время мое приложение просто перестает работать, когда истекают краткосрочные.
3. Есть ли способ, которым я должен обращаться с ними, чтобы проверить, если они истекли? Я использую php SDK и в основном использовал стандарт if ($ user) ... Вот так:
require 'sdk/src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXXXX',
));
$user = $facebook->getUser();
if( $user ){
try{
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if (!$user){
$params = array(
'scope' => 'email',
);
$loginUrl = $facebook->getLoginUrl( $params );
echo '<script type="text/javascript">
window.open("'. $loginUrl .'", "_self");
</script>';
exit;
}
if( $user ){
$access_token = $facebook->getExtendedAccessToken();
$get_user_json = "https://graph.facebook.com/me?access_token="
. $access_token;
// Rest of my code here...
}
Что-нибудь еще, что я должен сделать, чтобы обращаться с токенами?, Должен ли я передавать токен доступа между страницами или можно просто вызвать его снова в верхней части каждой страницы следующим образом:
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXX',
'redirect_uri' => 'http://localhost:8000/',
));
$token = $facebook->getExtendedAccessToken();