Я пытаюсь прочитать электронную таблицу, используя учетную запись службы (я не могу использовать OAuth, который работает, поскольку процесс будет выполняться на сервере для периодической проверки данных листа)
Я пробовал несколько подходов. Если я последую примеру, используя oauth, я смогу увидеть значения листа. Однако мне нужно запустить скрипт без какого-либо графического интерфейса в фоновом режиме.
Я нашел этот урок https://github.com/juampynr/google-spreadsheet-reader
Я создал проект, учетную запись службы, добавил роль зрителя, поделился таблицей с электронной почтой учетной записи службы. Сгенерировал ключ.
Похоже, что тестовая программа может подключиться к сервисам Google, но в тот момент, когда она запрашивает электронную таблицу, конечный результат «404 не найден».
require 'vendor/autoload.php';
$service_account_file = '/secrets/readsheetmar2019-08b737d1c1cb._portfolio_test.json';
$spreadsheet_id = '1TAWybckPrnWlQxBZh0ScDsFOvftwi2dvTBNGarSdY30';
$spreadsheet_range = '';
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . $service_account_file);
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Sheets::SPREADSHEETS_READONLY);
$client->fetchAccessTokenWithAssertion();
$service = new Google_Service_Sheets($client);
//added by me
if ($client->isAccessTokenExpired()) {
print "expired\n";
}else{
print "not expired\n";
}
$result = $service->spreadsheets_values->get($spreadsheet_id, $spreadsheet_range);
var_dump($result->getValues());
Ошибка: неустранимая ошибка PHP: необработанное исключение 'Google_Service_Exception' с сообщением '
Ошибка 404 (не найдена) !! 1