php - 如何检查 Google Drive 文件是否与任何拥有 Google Drive API 文件链接的人共享?
问题描述
我正在编写一个 API 来检查 Google Drive 文件是否与任何拥有该链接的人共享。我有 Google Drive 文件的文件 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();
}
}
我尝试通过检查权限对象的“类型”属性。但是我每次都将“用户”作为其价值。但是该文件已经共享给任何拥有该链接的人(使用 Google Drive 的权限 API,我可以看到它的内容)。我期待“任何人”作为“类型”属性的值。你能告诉我们你的想法吗?
解决方案
您需要使用permissions->list
而不是permissions->get
. 使用permissions->get
我猜你是从用户发送一个permissionId。
使用permissions->list
您只需发送 fileId,您将收到权限列表。然后迭代该列表并检查其中一个是否包含type: anyone
(在您的情况下,您甚至可以检查id: anyoneWithLink
)。
参考:https ://developers.google.com/drive/api/v3/reference/permissions/list
推荐阅读
- javascript - 将数组排序为第 1 分钟、第 1 最大值、第 2 分钟、第 2 最大值等
- java - 在 Java 8 中使用嵌套的 for 循环
- angular - macOS:Karma 在 X 秒内重新连接... ng test 停止观察变化
- email - 在 Rust 中解码带引号的可打印电子邮件字符串(如 =?UTF-8?Q??=D1=81_=D0)
- javascript - 如何在 mongoose Schema id 中设置特定值?
- julia - 用于检查 Julia v 1.1 语法正确性的 parse 和 eval 的替代方法
- docker - 使用 Web 服务器而不是 localhost 时 Flask SocketIO 超时
- python - 尝试安装模块时,即使已经安装了 3.7,pip 也会安装 python3.5
- android - 想知道 FCM 在以下场景中的工作原理
- typescript - 如何返回两个承诺?并让代码等到执行完成?