我正在编写一个API,以检查是否与具有链接的任何人共享Google云端硬盘文件。我有Google云端硬盘文件的文件ID。我有一个代码段来打印文件的权限
function printPermission($service, $fileId, $permissionId) {
try {
$permission = $service->permissions->get($fileId, $permissionId);
print "Name: " . $permission->getName();
print "Role: " . $permission->getRole();
$additionalRoles = $permission->getAdditionalRoles();
if(!empty($additionalRoles)) {
foreach($additionalRoles as $additionalRole) {
print "Additional role: " . $additionalRole;
}
}
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
}
我尝试通过检查权限对象的'type'属性。但是我每次都会得到“用户”作为其价值。但是该文件已经被共享给任何具有链接的人(使用Google云端硬盘的权限API,我可以看到其内容)。我期望“任何人”都是“类型”属性的值。您能告诉我们您的想法吗?
答案 0 :(得分:1)
您需要使用permissions->list
而不是permissions->get
。我猜您使用permissions->get
从用户发送了一个PermissionId。
使用permissions->list
,您只需要发送fileId,您将收到权限列表。然后,对该列表进行迭代,并检查其中是否包含type: anyone
(对于您而言,您甚至可以检查id: anyoneWithLink
)。
参考:https://developers.google.com/drive/api/v3/reference/permissions/list