Проблема с API-токеном на графике Facebook
Я использую api facebook graph api для авторизации пользователя в моем приложении, и я получаю токен короткого доступа в обратном вызове, а затем меняю этот токен на долгоживущий токен, срок действия которого истекает через два месяца:
public function callback($response)
{
$helper = $this->facebook->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch (FacebookResponseException $e) {
dd("Graph returned an error: " . $e->getMessage());
} catch (FacebookSDKException $e) {
dd("Facebook SDK returned an error: " . $e->getMessage());
}
if (!isset($accessToken)) {
if ($helper->getError()) {
return Response::HTTP_UNAUTHORIZED;
} else {
return Response::HTTP_BAD_REQUEST;
}
exit;
}
$token = $accessToken->getValue();
$this->params = array_merge($this->params, ['default_access_token' => $token]);
$longLivingToken = $this->getLongLivingToken($this->params, $token);
return $longLivingToken;
}
Мой вопрос: есть ли способ получить постоянный токен или обновить токен, не заставляя пользователя снова проходить через форму авторизации?
1 ответ
Не существует токена пользователя, который действителен вечно. Существует только расширенный пользовательский токен (который вы используете прямо сейчас), и он действителен в течение 60 дней. Нет способа автоматически обновить его, это должно происходить при взаимодействии с пользователем.
Единственные токены, которые действительны навсегда - это токены приложений и расширенные страницы.