Php 如何检查Google Drive文件是否与任何使用Google Drive API链接到该文件的人共享?
我正在编写一个API来检查Google驱动器文件是否与任何拥有该链接的人共享。我有谷歌驱动器文件的文件ID。我有一个代码片段来打印文件的权限Php 如何检查Google Drive文件是否与任何使用Google Drive API链接到该文件的人共享?,php,yii,google-api,google-drive-api,google-client,Php,Yii,Google Api,Google Drive Api,Google Client,我正在编写一个API来检查Google驱动器文件是否与任何拥有该链接的人共享。我有谷歌驱动器文件的文件ID。我有一个代码片段来打印文件的权限 function printPermission($service, $fileId, $permissionId) { try { $permission = $service->permissions->get($fileId, $permissionId); print "Name: " . $permission-
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'属性。但我每次都把“用户”作为它的值。但是这个文件已经被分享给任何拥有这个链接的人(通过谷歌驱动器的许可API,我可以看到它的内容)。我希望“anywhere”作为“type”属性的值。您能告诉我们您的想法吗。您需要使用
权限->列表
,而不是权限->获取
。使用permissions->get
我猜您是在向用户发送permissionId
使用permissions->list
只需发送文件ID,您将收到一个权限列表。然后迭代该列表并检查其中是否有一个包含类型:anyone
(在您的情况下,您甚至可以检查id:anyoneWithLink
)
参考资料:谢谢你@Rubén López。我的问题通过对资源权限使用“列表”API而不是“获取”来解决。