Проблема с 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 дней. Нет способа автоматически обновить его, это должно происходить при взаимодействии с пользователем.

Единственные токены, которые действительны навсегда - это токены приложений и расширенные страницы.

Другие вопросы по тегам