访问权限提案是请求者向审批人提出的授予收件人对 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
:每页返回的访问权限提案数量上限。
解决待处理的访问权限提案
如需解决 Google 云端硬盘内容的所有待处理访问权限提议,请对 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
)的提案。系统会从相应内容中移除其他访问权限提议。
向 resolve()
方法发送方案后,共享操作即完成。系统不再通过 list()
方法返回 AccessProposal
。提案被接受后,用户必须使用 permissions
集合来更新文件或文件夹的权限。如需了解详情,请参阅更新权限。