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