【发布时间】:2020-12-01 16:43:54
【问题描述】:
我想使用 Google Drive API 来监控我们组织内的文档,并确保没有人不正当地共享文件。为此,我需要能够查看当前谁(或哪些组)可以访问云端硬盘中的文档。我认为 Drive API 非常适合这个,但是当我在 API 中查找文件时,信息完全没有帮助。
每个文件都有一个权限列表,但是当我请求此列表时,它并没有说明每个权限适用于谁。他们说角色(即“读者”、“所有者”等)和类型(即“用户”、“组”等),但 email_address 字段始终为空白。即使我是文件的所有者,或者权限适用于我。
我做错了吗?有什么方法可以查看文件权限适用于谁?还是我运气不好?
这是我正在使用的 PHP 代码的精简版:
/* getClient creates and returns a Google_Client */
$client = $this->getClient();
$service = new Google_Service_Drive($client);
/* I use the service to look at my files and get a file id */
$optParams = array(
'pageSize' => 20,
'fields' => 'nextPageToken, files(id, name)'
);
$results = $service->files->listFiles($optParams);
foreach ($results->getFiles() as $file) {
$permissions = $service->permissions->listPermissions($file->getId());
var_dump($permissions);
}
附: This answer 建议出于隐私原因忽略电子邮件地址(并且似乎暗示它们从不可见?)但它也在谈论 API 的 V2,所以我不知道如果适用。另外,我不明白为什么在浏览器中使用 Google Drive 时可以清楚地看到电子邮件地址,但出于隐私原因,它会隐藏这些电子邮件地址。
【问题讨论】:
-
请编辑您的问题并包含您的代码。尝试使用 fields=* 参数提出您的请求。如果没有看到您的代码,我无法告诉您如何做到这一点。
-
这正是我的问题,我完全忘记了 fields 参数。包括它,现在它可以工作了。谢谢。
标签: php google-api google-drive-api google-api-php-client