访问权限提案是指请求者向审批者提出的授予接收者访问 Google 云端硬盘内容的提案。
审批人可以查看并处理云端硬盘文件中所有未解决的访问权限提案。也就是说,您可以以编程方式查询访问权限提案,然后解决这些提案,从而加快审批流程。审批人还可以汇总查看提案。
Google Drive API 提供了
accessproposals 资源,以便您查看
和解决待处理的访问权限提案。accessproposals 资源的方法适用于文件、文件夹、共享云端硬盘中的文件,但不适用于共享云端硬盘本身。
以下术语是访问权限提案特有的:
- 请求者:向 云端硬盘内容发起访问权限提案的用户。
- 接收者:如果 访问权限提案获得批准,则接收者是获得文件额外权限的用户。很多时候,接收者与要求提出者是同一用户,但并非总是如此。
- 审批人:负责批准(或拒绝)访问权限提案的用户。通常,这是因为他们是文档的所有者,或者他们有权共享文档。
使用 fields 参数
如果您想指定要在响应中返回的字段,可以使用
fields system
parameter
设置 accessproposals 资源的任何方法。如果您省略 fields 参数,服务器会返回特定于该方法的默认字段集。如需
返回不同的字段,请参阅返回特定
字段。
获取待处理的访问权限提案
如需获取访问权限提案,请对 accessproposals 资源使用 get 方法,并使用 fileId 和 proposalId
路径参数。如果您不知道提案 ID,可以使用 list pending access
提案 方法。list
列出待处理的访问权限提案
如需列出云端硬盘内容的所有待处理访问权限提案,请对
accessproposals资源调用
list方法,并添加
fileId路径参数。
只有文件的审批者才能列出文件的待处理提案。审批者是指对文件具有 can_approve_access_proposals 功能的用户。如果请求者不是审批者,则会返回空列表。如需详细了解 capabilities,请参阅 了解文件
功能。
响应正文包含一个 accessproposals 对象,该对象表示文件上未解决的访问权限提案列表。
accessproposals 对象包含有关每个提案的信息,例如请求者、接收者以及请求者添加的消息。它还
包含一个 RoleAndView
对象,该对象将请求者提出的 role 与 view 分组。由于 role 是重复字段,因此每个提案可能存在多个角色。例如,一个提案可能有一个 RoleAndView 对象,其值为 role=reader 和 view=published,另外还有一个 RoleAndView 对象,其值仅为 role=writer。如需了解详情,请参阅
视图。
传递以下查询参数,以自定义访问权限提案的分页或过滤条件:
pageToken:从之前的列表调用收到的页面令牌。提供此令牌可检索后续页面。pageSize:每页返回的访问权限提案数量上限。
解决待处理的访问权限提案
如需解决云端硬盘内容的所有待处理访问权限提案,请对 accessproposals 资源调用 resolve 方法,并添加 fileId 和 proposalId 路径参数。
resolve 方法包含一个 action 查询参数,用于表示要对提案执行的操作。
Action 对象会跟踪
提案的状态变化,以便我们了解提案是被接受还是被拒绝。
resolve 方法还包含 role 和 view 的可选查询参数。唯一受支持的角色是 writer、commenter 和 reader。如果未指定角色,则默认值为 reader。如需了解详情,请参阅角色
和权限。您还可以使用另一个可选查询参数 sendNotification,以便在提案被接受或拒绝时向请求者发送电子邮件通知。
与 list 方法一样,解决提案的用户必须对文件具有 can_approve_access_proposals 功能。如需详细了解 capabilities,请参阅 了解文件
功能。
提案的解决方式与共享云端硬盘 资源 场景中列出的模式相同。如果同一用户有多个提案,但角色不同,则适用以下规则:
- 如果一个提案被接受,另一个被拒绝,则接受的角色适用于云端硬盘内容。
- 如果两个提案同时被接受,则应用权限较高的提案(例如,
role=writer与role=reader相比)。另一个访问权限提案将从内容中移除。
将提案发送到 resolve 方法后,共享操作即完成。已解决的访问权限提案不再通过 list 方法返回。提案被接受后,用户必须使用 permissions 资源来更新文件或
文件夹的权限。如需了解详情,请参阅更新
权限。