存取權提案是指要求者向核准者提出的提案,要求授予收件者 Google 雲端硬碟項目的存取權。
核准者可以查看並處理雲端硬碟檔案中所有待解決的存取權提案。也就是說,您可以透過程式輔助方式查詢存取提案,然後解決提案,加快核准程序。核准者也可以一併查看所有提案。
Google Drive API 提供 accessproposals
資源,方便您查看及解決待處理的存取權提案。accessproposals
資源的方法適用於檔案、資料夾和共用雲端硬碟中的檔案,但不適用於共用雲端硬碟。
下列字詞專指存取提案:
- 要求者:對 Google 雲端硬碟項目發起存取提案的使用者。
- 收件者:如果存取提案獲得核准,使用者就會收到檔案的額外權限。收件者通常與要求者相同,但並非一律如此。
- 核准者:負責核准 (或拒絕) 存取權提案的使用者。通常是因為他們是文件擁有者,或有權分享文件。
列出待處理的存取權提議
如要列出雲端硬碟項目上所有待處理的存取權提案,請呼叫 accessproposals
資源上的 list()
方法,並加入 fileId
路徑參數。
只有檔案核准者才能列出檔案中待處理的提案。核准者是擁有檔案 can_approve_access_proposals
功能的使用者。如果要求者不是核准者,系統會傳回空白清單。如要進一步瞭解 capabilities
,請參閱「瞭解檔案功能」。
回應主體包含 AccessProposal
物件,代表檔案中未解決的存取提案清單。
AccessProposal
物件包含每個提案的相關資訊,例如要求者、收件者,以及要求者新增的訊息。其中也包含 AccessProposalRoleAndView
物件,可將要求者的建議 role
與 view
分組。由於 role
是重複欄位,因此每個提案可能有多個。舉例來說,提案可能會有 role=reader
和 view=published
的 AccessProposalRoleAndView
物件,以及只有 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
,請參閱「瞭解檔案功能」。
提案的解決方式與「共用雲端硬碟資源的案例」一節所列模式相同。如果同一位使用者有多個提案,但角色不同,則適用下列情況:
- 如果一個提案獲准,另一個遭拒,則獲准的提案會套用至 Google 雲端硬碟項目。
- 如果兩個提案同時通過,系統會採用權限較高的提案 (例如
role=writer
與role=reader
相比)。系統會從該項目中移除其他存取權提案。
將提案傳送至 resolve()
方法後,分享動作即完成。AccessProposal
不再透過 list()
方法傳回。提案獲准後,使用者必須使用 permissions
集合更新檔案或資料夾的權限。詳情請參閱「更新權限」。