本指南介绍了 Google Drive Activity API 中响应的主要组成部分, 示例,并说明如何解读这些示例。
对象
DriveActivity
:这是 向 Drive Activity API 的查询返回的主要资源。它 描述一个或多个行为者执行一项或多项操作,该操作影响一个或 更多目标。Actor
- 通常情况下,Actor
最终用户。不过,系统事件有时可能会触发Action
(如果管理员以 或由无法识别身份的人执行。通过Actor
消息封装了这些情况。Target
-Target
是对象 例如文件、文件夹、共享云端硬盘或文件评论。 请注意,许多操作类型都支持多种目标。对于 但Edit
通常适用于云端硬盘文件,而其他文件Rename
和Create
等操作也可应用于云端硬盘 文件夹和共享云端硬盘。目标不是云端硬盘内容 但仍可引用文件夹,例如云端硬盘的根文件夹或父级文件夹 包含文件评论的文档。Action
- 每个DriveActivity
资源具有一项或多项相关操作。Action
是独立的, 比如 event,因为它不仅包含详细的类型和信息, 以及一个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
相同。