@Prosciutto
Постигаю

Запрос к Google Api срабатывает без access_token?

Пытаюсь разобраться с google api. В качестве авторизации для приложения использую механизм service account. Чтобы получить access_token, сформировал JWT, отправил соответствующий запрос и получил access_token. И вроде бы все заработало, запросы к api удачно делаются. Но этот токен ведь выдается на 3600 секунд. Значит если простой более часа, то токен должен быть обновлен. А у меня вообще БЕЗ токена запросы делаются. Я вручную подменяю набор символов. Не пойму как это работает. Я думал, что нужно каждый запрос делать проверку на свежесть токена и если протух, то снова формировать JWT и получать access_token. Это следует из документации. Кто мне объяснит что я упускаю?

Вот код, который успешно выполняется, но я не могу понять, почему успешно без участия access_token?
Единственное объяснение в моей голове: сервер API запомнил, что user с такими-то credentials access_token получал и мы это помним. Но почему тогда больше 3600 секунд они это помнят.
Если кто понимает, прошу прокомментировать. Спасибо за участие!
require_once __DIR__ . '/vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=test-creds.json');

appendDataToTable('Списки!G9', [[4]]);   // главный вызов ф-ции

function getClient()
{
    $client = new Google\Client();
    $client->useApplicationDefaultCredentials();
    $client->setScopes('https://www.googleapis.com/auth/spreadsheets');
    $client->setAccessType('offline');

    return $client; 
}

function appendDataToTable($range, $values)
{
    $client = getClient();
    $service = new Google\Service\Sheets($client);
    $spreadsheetId = '*****';
    $body = new Google_Service_Sheets_ValueRange(['values' => $values]); 
    $params = [
        'valueInputOption' => 'RAW',
        'includeValuesInResponse' => true
    ];
    $response = $service->spreadsheets_values->append($spreadsheetId, $range, $body, $params);

    return $response;
}
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы