Я работаю над проектом API аналитики, и когда через час истекает срок действия токена доступа, я получаю «код: 401, недействительные учетные данные» и мне нужно отключить сеанс php, чтобы иметь возможность повторной аутентификации.Я прочитал, что я должен получить токен обновления автоматически при первой авторизации, но я его нигде не вижу.Я также попытался установить токен обновления вручную, получив его с игровой площадки oauth2.Как я могу сделать эту работу?Должен ли токен обновления изначально сохраняться в $ _SESSION?
Код, о котором идет речь:
require_once __DIR__ . '/vendor/autoload.php';
$client = new Google_Client();
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');
$client->setAccessType('offline');
$client->setApprovalPrompt('force');
$client->setIncludeGrantedScopes(true);
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
$analytics = new Google_Service_Analytics($client);
} else {
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
Токен доступа в $ _SESSION
[access_token] => blahblahblah
[expires_in] => 3600
[scope] => https://www.googleapis.com/auth/analytics.readonly
[token_type] => Bearer
[created] => 1537207944