Я использую API Google Диска и аутентифицирую себя с использованием маркера OAuth с помощью PHP-программы. Для моей тестовой программы я сразу же перешел на OAuth url и создал токен. Затем я использовал его в программе и сохранил его в файле. С следующего момента токен загружается из файла, и программа может получить доступ к Google Диску. Однако, поскольку токен будет действителен только в течение 1 часа, после этого я получаю ошибку, поскольку токен, который он извлекает из файла, больше не будет действителен. Я не понимаю, как я могу обновить токен, чтобы он не требовал вручную получить новый токен.Как обновить токен OAuth?
Ниже мой код -
$client = new Google_Client();
$client->setClientId(CLIENT_ID);
$client->setClientSecret(CLIENT_SECRET);
$client->setRedirectUri(REDIRECT_URIS);
$client->setScopes($SCOPES);
$client->setAccessType('offline');
$client->setAuthConfigFile(CLIENT_SECRET_PATH);
Если креди файл существует, я тяну маркер из этого файла еще я бы Fetching его. В настоящее время, первый маркер времени я устанавливаю вручную -
if (file_exists(CREDENTIALS_PATH)) {
$accessToken = file_get_contents(CREDENTIALS_PATH);
} else {
$authCode = 'My Auth Code';
$accessToken = $client->authenticate($authCode);
}
file_put_contents(CREDENTIALS_PATH, $accessToken);
$client->setAccessToken($accessToken);
Теперь, если маркер истек я должен автоматически обновить маркер.
if ($client->isAccessTokenExpired()) {
//This is where I am running in trouble.
}
Как это достичь? Цель состоит в том, чтобы выполнить аутентификацию OAuth и выполнить API Google Диска без какого-либо вмешательства вручную.
Благодарим за помощь!