繁体   English   中英

如何仅在 Google Drive API 中列出所有共享文件夹和文件?

[英]How to list all shared folder and files only in Google Drive API?

如何仅列出 Google Drive API 中的共享文件夹/文件?

我的代码中有这个;

$parameters['fields'] = 'files(id, name, modifiedTime, mimeType, parents, trashed, permissions, webViewLink, webContentLink, exportLinks), nextPageToken';

但是当我尝试添加 Owners 字段时,它没有显示谁共享了文件夹/文件。

我相信你的目标和你目前的情况如下。

  • 您想要检索您在 Google 云端硬盘中共享的共享文件夹和文件的列表。
  • 您想使用针对 PHP 的 googleapis 来实现此目的。
  • 您已经能够使用 Drive API v3 从 Google Drive 获取值。

在这种情况下,我认为可以使用文件元数据的shared属性。 但是,不幸的是,在当前阶段,似乎没有直接检索此类文件的搜索查询。 因此,作为示例脚本,当检索到您在 Google Drive 中共享的所有文件夹和文件的列表时,会检查此属性。 这一点反映到 PHP 的脚本中,变为如下。

示例脚本:

$service = new Google_Service_Drive($client); // Please use your "$client".
$pageToken = '';
$list = [];
do{
    $res = $service->files->listFiles([
        'pageSize' => 1000,
        'fields' => 'nextPageToken,files(id,name,mimeType,shared)',  // or '*'
        'q' => "'me' in owners and trashed = false",
        'pageToken' => $pageToken
    ]);
    $files = $res -> getFiles();
    if (!empty($files)) {
        foreach ($files as $f) {
            if ($f -> getShared()) {
                array_push($list, $f -> getName());
            }
        }
    }
    $pageToken = $res -> getNextPageToken();
} while ($pageToken != "");
print($list);
  • 在此示例中,文件和文件夹名称作为$list中的列表检索。 当你想检索其他文件元数据时,例如,请修改array_push($list, $f -> getName()); array_push($list, $f); .
  • 当您使用*作为fields的值时,将检索所有文件元数据。

笔记:

  • 如果要检索其他用户共享的文件,还可以使用以下示例脚本。

     $service = new Google_Service_Drive($client); // Please use your "$client". $pageToken = ''; $list = []; do{ $res = $service->files->listFiles([ 'pageSize' => 1000, 'fields' => 'nextPageToken,files(id,name,mimeType)', // or '*' 'q' => "sharedWithMe", 'pageToken' => $pageToken ]); $files = $res -> getFiles(); if (,empty($files)) { $list = array_merge($list; $files); } $pageToken = $res -> getNextPageToken(); } while ($pageToken;= ""); print($list);

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM