本指南說明 Google Drive Activity API 第 1 版和第 2 版的差異,以及如何變更第 1 版應用程式,以支援第 2 版 API。
授權
v1 API 使用了這個範圍:
https://www.googleapis.com/auth/activity
v2 API 需要下列其中一個範圍:
https://www.googleapis.com/auth/drive.activity
https://www.googleapis.com/auth/drive.activity.readonly
資源名稱
在 v1 API 中,Google 雲端硬碟項目和使用者等物件的 ID 為不透明字串。在 v2 API 中,這些物件通常會使用資源名稱參照。詳情請參閱 Cloud API 設計指南。
這些 ID 通常可以轉換。舉例來說,v2 API 中的 Google 雲端硬碟項目會使用資源名稱 items/ITEM_ID_V1
做為參照。
要求
v2 的要求格式與 v1 相似。具體來說,您仍可針對雲端硬碟檔案或雲端硬碟祖系要求活動,但請注意,您必須將這些要求參數設為資源名稱,也就是在參數前面加上 items/
。
「分組」現在稱為「整合」,source
和 userId
要求參數已遭移除。
此外,我們也推出了新的「篩選器」選項,可讓您限制回應中傳回的活動資料類型。
動作
在第 1 版 API 中,活動類型和與該活動相關聯的資料位於不同的欄位。舉例來說,如果 primaryEventType
欄位包含 move
值,應用程式會假設頂層 move
欄位會填入新增和移除的父項。
在 v2 API 中,這些欄位已不再區分。ActionDetail
訊息只能包含一個欄位組合。它代表動作類型,並包含與該動作相關的詳細資料。舉例來說,代表移動的 ActionDetail
只會設定 move
欄位,而該欄位會列出新增和移除的父項。
v1 API primaryEventType
欄位大致對應至 v2 primaryActionDetail
。
發動者
在 v1 API 中,如果行為者是已知使用者,則傳回的活動會包含 User
,並可視情況包含頂層欄位 (例如 fromUserDeletion
) 用於特殊情況。
在第 2 版 API 中,您可以使用更豐富的 Actor
類型,如果執行者是已知使用者,系統會填入 user.knownUser
。如果應用程式需要使用者詳細資訊,可以將 KnownUser
欄位 personName
傳遞至 people.get
方法,透過 People API 查詢該資訊。
目標
在 v1 API 中,目標一律是 Google 雲端硬碟項目。在 v2 API 中,目標可以是 Drive 中的其他類型物件。舉例來說,變更磁碟的目標類型為 Drive
。共用雲端硬碟的根資料夾仍會傳回 (以 root
欄位的 DriveItem
形式傳回),但並非活動的直接目標。類似的概念也適用於 FileComment
資源,其 parent
欄位會參照含有目標留言串的雲端硬碟項目。
匯總活動
在 v1 API 中,設定整合 (「分組」) 策略時,回應的樣式會有所變更。具體來說,開啟整合功能後,每項活動都會包含組成 singleEvents
和 combinedEvent
,這些組成事件會匯總這些組成事件中的共同活動。關閉合併功能後,combinedEvent
欄位會包含每項活動的原始未合併事件。這些事件都可能代表多個動作,例如建立和分享。
在 v2 API 中,回應的樣式不會根據合併策略而變更,因為傳回的 DriveActivity
一律會包含完整的演算子、目標和動作組合。