сначала позвольте мне извиниться, если это простое решение, я никогда не использовал Google API или что-то подобное, а также я новичок в php
В настоящее время я пытаюсь прочитать электронную таблицу с помощью Google Sheets API и просто распечатать ее. Я думаю, что все выглядит нормально, но когда я запускаю его, он выдает следующую ошибку:
PHP Fatal error: Uncaught Google\Service\Exception: {
"ошибка": { «код»: 404, "message": "Запрошенный объект не найден.", "ошибки": [ { "message": "Запрошенный объект не найден.", "домен": "глобальный", "причина": "не найдено" } ], "статус": "НЕ_НАЙДЕНО" } }
вот мой php-файл:
require __DIR__ . '/vendor/autoload.php';
$client = new \Google_Client();
$client->setApplicationName('Sheets Test');
$client->setScopes([\Google_Service_Sheets::SPREADSHEETS]);
$client->setAccessType('offline');
$client->setAuthConfig(__DIR__ . '/credentials.json');
$service = new \Google_Service_Sheets($client);
$spreadsheetId = "1sefMmSCVnQRMVFuG8l5SKx7phpD2vvmwzq7opsgyuebYIU";
$range = "currentRatings!A2:C4";
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();
if (empty($values)){
print "No data found. \n";
} else {
$mask = "%10s %-10s $s\n";
foreach($values as $row){
echo sprintf($mask, $row[2], $row[1], $row[0]);
}
}
как показано выше, я подключил файл учетных данных, который является той же учетной записью службы, к которой предоставлен общий доступ к листу. я также знаю, что проблема возникает/начинается в этой строке:
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
вот что я пробовал:
На текущем этапе кажется, что длина идентификатора электронной таблицы равна 44. Но в вашем сценарии, если вы используете свой идентификатор электронной таблицы как 1sefMmSCVnQRMVFuG8l5SKx7phpD2vvmwzq7opsgyuebYIU
из $spreadsheetId = "1sefMmSCVnQRMVFuG8l5SKx7phpD2vvmwzq7opsgyuebYIU";
, я беспокоюсь, что длина равна 47. Связано ли это с причина вашей текущей проблемы? Но, скажете вы double checking the sheet id
. Так что, если я неправильно понял вашу ситуацию, прошу прощения.
Не могу поверить, что не видел этого, ты прав, идентификатор длиннее, чем должен быть. Понятия не имею, как я получил 47 символов, но большое спасибо! когда я проверял идентификатор, я проверял только переднюю и заднюю часть URL
Хорошо, я обнаружил, что мой идентификатор слишком длинный. Вероятно, я случайно ввел его в какой-то момент, что и вызвало ошибку. Я проверил удостоверение личности, но проверил только переднюю и заднюю часть удостоверения.
Вы используете учетную запись службы?