從 Drive Activity API v1 遷移

本指南說明 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/

「分組」現在稱為「整合」sourceuserId 要求參數已遭移除。

此外,我們也推出了新的「篩選器」選項,可讓您限制回應中傳回的活動資料類型。

動作

在第 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 中,設定整合 (「分組」) 策略時,回應的樣式會有所變更。具體來說,開啟整合功能後,每項活動都會包含組成 singleEventscombinedEvent,這些組成事件會匯總這些組成事件中的共同活動。關閉合併功能後,combinedEvent 欄位會包含每項活動的原始未合併事件。這些事件都可能代表多個動作,例如建立和分享。

在 v2 API 中,回應的樣式不會根據合併策略而變更,因為傳回的 DriveActivity 一律會包含完整的演算子、目標和動作組合。