Google Drive API - 添加和更新权限

Posted

技术标签:

【中文标题】Google Drive API - 添加和更新权限【英文标题】:Google Drive API - Adding and Updating Permissions 【发布时间】:2012-08-18 23:51:33 【问题描述】:

我正在我的 android 应用中在 Google 云端硬盘上共享文件。这是场景... 用户 A 与用户 B 共享一个文件,给他/她“作家”角色。后来,健忘的用户 A 再次与用户 B 共享同一个文件,这一次让他/她成为“读者”角色。我的问题是,这会覆盖第一个权限吗?还是应用程序应该处理现有文件权限的检查?

【问题讨论】:

【参考方案1】:

您可以使用drive.permissions.update 更新permissionrole 属性,前提是您有fileIdpermissionIdrole 属性将被覆盖。但是,如果您注意到,有一个 additionalRoles[] 属性将允许您将辅助角色添加到授予用户的权限。现在,只允许commenter。也许将来,该属性中会添加更多角色。

您可以使用Google API Explorer自行确认:

    首先,发送drive.files.list请求获取fileId的共享 文件。 使用fileId发送drive.permissions.list请求以获取 用户的permissionId(即回复中的id)。 有了fileIdpermissionId,现在你可以使用 drive.permissions.update 通过发送更改该用户的角色 正文中带有 role 属性的请求。

【讨论】:

谢谢!因此,为了获得permissionId,我必须遍历权限列表并获得 value 属性等于用户电子邮件的权限,对吧? 如果您只想获得经过身份验证的用户(使用您的应用程序)的权限,发送drive.files.list 请求就足够了。响应将包含userPermission 字段,该字段向文件提供该用户的idroletype。请注意,您可以将权限id 用作me,而不是经过身份验证的用户的完整ID 字符串。否则,如果您想获得授予所有用户的权限,那么是的,您需要发送drive.permission.list 请求以获取用户列表并更新他们的roles 我不确定拥有owner 角色的用户是否可以更改为另一个角色。我尝试使用 API Explorer,它给了我500 Internal Server Error

以上是关于Google Drive API - 添加和更新权限的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 API 向 Google Drive 添加/创建/插入文件?

Javascript - Google Drive v3 API和功能

Google Drive API v3 Python文件中缺少某些文件()。list()

参数列表文件API调用Google Drive API中的created_at属性

用于扫描文档的 Google Drive API [关闭]

从 Google Drive V3 API 中的回收站恢复文件时未设置时间戳