本指南將說明 Google Drive Activity API 的回應主要元件。 中的範例及如何解讀這些例子。
物件
DriveActivity
:這是 Drive Activity API 的查詢傳回的主要資源。這項服務 描述一或多位演員正在執行一或多個影響一或多個動作Timestamp
敬上 和TimeRange
:這些 分別描述在活動期間 或活動的開始與結束,範圍為 讓應用程式從可以最快做出回應的位置 回應使用者要求Actor
:Actor
通常為 而非個別使用者的帳戶不過,系統事件有時可能會觸發 如果管理員的身分是Action
或他人執行這類操作時。Actor
訊息會封裝以下每個情況。Target
:Target
是物件 活動,例如檔案、資料夾、共用雲端硬碟或檔案註解。 請注意,許多動作類型都支援多個目標類型。適用對象 舉例來說,Edit
通常適用於雲端硬碟檔案,其他Rename
和Create
等動作也可以套用到雲端硬碟 資料夾和共用雲端硬碟。不屬於雲端硬碟項目的目標 仍可參照其中一個項目,例如雲端硬碟的根資料夾或父項資料夾 內含檔案註解的文件。Action
- 每DriveActivity
資源有一或多個相關動作。Action
是獨立的 如同 事件,而不只是詳細的類型和資訊 與動作相關,但也需包含Actor
、Target
和Timestamp
或TimeRange
。為避免重複,Action
不會自行填入資料Target
、Actor
或時間欄位 (前提是這些欄位與DriveActivity
。ActionDetail
:這是 特定類型和Action
的詳細資訊舉例來說Move
動作詳細資料包含來源和目的地位置,以及PermissionChange
會指定目前可以存取文件的人員,以及文件的內容 權限。
回應範例
使用者在雲端硬碟中編輯了檔案:
簡單的 DriveActivity
資源可能只包含一個動作,例如使用者
編輯單一檔案
"activities":[{
"primary_action_detail":{ "edit":{} },
"actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
"targets":[ { "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
"timestamp":{ "seconds":"1536794657", "nanos":791000000 },
"actions":[ { "detail":{ "edit":{} } } ]
}]
這項輸出內容包含下列值:
- ACCOUNT_ID:使用者的 ID。這可以與 搭配使用 People API。
- ITEM_ID:雲端硬碟項目的 ID。
- TITLE:雲端硬碟項目的名稱。
請注意,此回應中的 Action
不包含 Actor
、Target
,
或 TimeStamp
,因為其與整體 DriveActivity
相同。
兩位使用者在同一時間編輯過同一個檔案:
開啟整合功能後,系統會將相關動作歸入單一動作
DriveActivity
。在這個示例中,系統將 2 個相似的動作歸類為一組:一個 Edit
動作類型。
"activities":[{
"primary_action_detail":{ "edit":{} },
"actors":[
{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } }
],
"targets":[
{ "drive_item":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
],
"time_range":{
"start_time":{ "seconds":"1541089823", "nanos":712000000 },
"end_time":{ "seconds":"1541089830", "nanos":830000000 }
},
"actions":[
{
"detail":{ "edit":{} },
"actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_1" } } },
"timestamp":{ "seconds":"1541089830", "nanos":830000000 }
},
{
"detail":{ "edit":{} },
"actor":{ "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID_2" } } },
"timestamp":{ "seconds":"1541089823", "nanos":712000000 }
}
]
}]
這項輸出內容包含下列值:
- ACCOUNT_ID_1:第一位使用者的 ID。這類函式適用於 People API 以取得更多資訊。
- ACCOUNT_ID_2:第二位使用者的 ID。
- ITEM_ID:雲端硬碟項目的 ID。
- TITLE:雲端硬碟項目的名稱。
請注意,此回應中的動作不含 Target
,因為:
與整體DriveActivity
相同。
本範例也說明應用程式可能只會以下列方式使用摘要資訊:
DriveActivity
,而不用查看個別動作。回應
表示有 2 位使用者在一段時間內編輯了特定檔案。
使用者將 2 個檔案移至新目錄:
在此範例中,合併策略會將 2 個相關的 Move
動作分為一組
因為檔案已從相同來源移至位於
"activities":[{
"primary_action_detail":{
"move":{
"added_parents":[ { ... } ]
"removed_parents":[ { ... } ]
}
},
"actors":[ { "user":{ "known_user":{ "person_name":"people/ACCOUNT_ID" } } } ],
"targets":[
{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
{ "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
],
"timestamp":{ "seconds":"1541090960", "nanos":985000000 },
"actions":[
{
"detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
"target":{ "drive_item":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
},
{
"detail":{ "move":{ "added_parents":[ { ... } ] "removed_parents":[ { ... } ] } },
"target":{ "drive_item":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
}
]
}]
這項輸出內容包含下列值:
- ACCOUNT_ID:使用者的 ID。這可以與 搭配使用 People API。
- ITEM_ID_1:第一個雲端硬碟項目的 ID。
- ITEM_ID_2:第二個雲端硬碟項目的 ID。
- TITLE_1:第一個雲端硬碟項目的名稱。
- TITLE_2:第二個雲端硬碟項目的名稱。
請注意,此回應中的動作不含 Actor
或 TimeStamp
因為這與整體DriveActivity
相同。