Google Sheets API 404 错误:“未找到请求的实体”未捕获 Google\Service\Exception

问题描述 投票:0回答:1

首先让我说,如果这是一个简单的解决方案,我很抱歉,我从未使用过 google api 或类似的东西,而且我是 php 的新手

我目前正在尝试使用 Google Sheets API 读取电子表格并将其打印出来。我认为一切看起来都很好,但是当我运行它时,它给了我这个错误:

PHP Fatal error:  Uncaught Google\Service\Exception: {

“错误”:{ “代码”:404, "message": "未找到请求的实体。", “错误”:[ { "message": "未找到请求的实体。", “域”:“全球”, “原因”:“未找到” } ], “状态”:“NOT_FOUND” } }

这是我的 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);

这是我尝试过的:

  • 仔细检查工作表 ID
  • 通过composer降级google api的版本
  • 更改“$range”值(即使我将工作表的名称更改为不正确的名称,也没有任何改变)
  • 在谷歌控制台中创建一个新的服务帐户
  • 确保工作表已共享到服务帐户
php google-api google-sheets-api
1个回答
0
投票

好吧,所以我发现我的 ID 太长,我可能在某个时候不小心输入了它,从而导致了错误。我确实检查了身份证,但我只检查了身份证的正面和背面。

© www.soinside.com 2019 - 2024. All rights reserved.