Проблема с API-токеном на графике Facebook

-2

Я использую 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
    Мы снова отправляем пользователя через поток авторизации. Поскольку они уже приняли разрешения, они больше не видят форму - они просто перенаправляются обратно с новым токеном.
  • 0
    @ceejayoz, так что нет способа получить постоянный токен без перенаправления?
Показать ещё 1 комментарий
Теги:
facebook-graph-api
facebook-access-token

1 ответ

1
Лучший ответ

Пользовательский токен не действует навсегда. Существует только расширенный токен пользователя (который вы используете прямо сейчас), и он действителен в течение 60 дней. Невозможно автоматически обновить его, это должно произойти с пользовательским взаимодействием.

Единственными токенами, которые действительны навсегда, являются токены приложений и расширенные токены.

  • 0
    спасибо, это относится и к токену приложения?
  • 1
    @ User_4444 В ответе конкретно упоминаются токены приложения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню