如何在 Google Drive API v3 PHP 中列出特定文件夹中的文件

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

我正在寻找一种方法,如何列出 Google Drive API v3 中特定文件夹(带有文件夹 ID)中的文件。 我使用了这个函数

$service->files->listFiles()
,但它返回谷歌云端硬盘中的所有文件。 你知道我可以使用哪个功能吗?

php google-drive-api
3个回答
60
投票

很酷,我找到了答案。

  $optParams = array(
        'pageSize' => 10,
        'fields' => "nextPageToken, files(contentHints/thumbnail,fileExtension,iconLink,id,name,size,thumbnailLink,webContentLink,webViewLink,mimeType,parents)",
        'q' => "'".$folderId."' in parents"
        );
  $results = $service->files->listFiles($optParams);

0
投票

我发现对此有一个警告。如果我不是该文件夹的所有者并且尚未打开文件,则此方法不会向我显示该文件。也就是说,如果我在 Chrome 中浏览文件夹,我可以看到其中的所有文件,但如果我使用 API,我只能取回之前在浏览器中打开的两到三个文件。

更新:我明白了为什么会得到这个结果。我使用了

q=f"parents in '{folder_id}'"
而不是
q=f"'{folder_id}' inParents"
为什么会返回任何内容?谁知道?


0
投票

这段代码非常适合我。

$optParams = array(
    'corpora' => "allDrives",
    'pageSize' => 100,
    'fields' => "nextPageToken, files(contentHints/thumbnail,fileExtension,iconLink,id,name,size,thumbnailLink,webContentLink,webViewLink,mimeType,parents)",
    'q' => "'".$folderId."' in parents",
    'includeItemsFromAllDrives' => 'true',
    'supportsAllDrives' => 'true'
    );
$file = $driveService->files->listFiles($optParams);
© www.soinside.com 2019 - 2024. All rights reserved.