[英]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 字段时,它没有显示谁共享了文件夹/文件。
我相信你的目标和你目前的情况如下。
在这种情况下,我认为可以使用文件元数据的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.