簡體   English   中英

使用Google Drive API(PHP)列出文件時出錯

[英]Error listing files with Google Drive API (PHP)

我正在嘗試使用Google的PHP API( https://developers.google.com/drive/v2/web/quickstart/php )列出Google雲端硬盤中的文件。

我已經設法獲得了作用域訪問令牌,但是Google提供的用於列出文件的示例代碼( https://developers.google.com/drive/v2/reference/files/list#response )返回了錯誤。

這是我的代碼:

$client = new Google_Client();
    $client->setAuthConfigFile('/usr/share/nginx/google.json');
    $client->setAccessToken($a4e->user->google_token); // access token scoped for DRIVE_READONLY
    $drive_service = new Google_Service_Drive($client);

    $files=retrieveAllFiles($drive_service);
    var_dump($files);

    function retrieveAllFiles($service) {
      $result = array();
      $pageToken = NULL;

      do {
        try {
          $parameters = array();
          if ($pageToken) {
            $parameters['pageToken'] = $pageToken;
          }
          $files = $service->files->listFiles($parameters);

          $result = array_merge($result, $files->getItems());
          $pageToken = $files->getNextPageToken();
        } catch (Exception $e) {
          print "An error occurred: " . $e->getMessage();
          $pageToken = NULL;
        }
      } while ($pageToken);
      return $result;
    }

這將返回以下錯誤:

致命錯誤:在第30行的/usr/share/nginx/html/tools/google/index.php中調用未定義的方法Google_Service_Drive_FileList :: getItems()

有人知道我在做什么錯嗎?

提前謝謝了。

我猜您正在使用Drive API V3並嘗試在V3中調用版本V2的方法。 清楚地看一下文檔,Drive API V2返回以下格式的響應{ "kind": "drive#fileList", "etag": etag, "selfLink": string, "nextPageToken": string, "nextLink": string, "items": [ files Resource ] }因此,您可以在V2中執行$files->getItems() 但是Drive API V3以以下格式返回響應列表{ "kind": "drive#fileList", "nextPageToken": string, "files": [ files Resource ] }因此,您可能需要執行$files->getFiles() 試試看 !! 我希望這能奏效。 供參考,請參閱Drive API V3列表響應 Drive API V2列表響應 讓我知道問題是否解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM