В этом руководстве объясняются основные компоненты ответа в API активности Google Диска, показаны примеры и способы их интерпретации.
Объекты
DriveActivity
: это основной ресурс, возвращаемый запросами к API активности диска. Он описывает одного или нескольких субъектов, выполняющих одно или несколько действий, влияющих на одну или несколько целей.Timestamp
иTimeRange
: они описывают, соответственно, либо один момент времени, когда произошло действие, либо начало и конец того, когда действие произошло за определенный промежуток времени.Actor
: ОбычноActor
является конечный пользователь. Однако иногда системное событие может инициироватьAction
, когда администратор действует от имени пользователя или от своего имени, или когда оно выполняется неидентифицируемым лицом. СообщениеActor
инкапсулирует каждый из этих случаев.Target
:Target
— это объект действия, например файл, папка, общий диск или комментарий к файлу. Обратите внимание, что многие типы действий поддерживают более одного типа целей. Например, хотяEdit
обычно применяется к файлам на Диске, другие действия, такие какRename
иCreate
, также могут применяться к папкам на Диске и общим дискам. Целевые объекты, не являющиеся элементами Диска, все равно могут ссылаться на один из них, например на корневую папку диска или родительский документ, содержащий комментарий к файлу.Action
: каждый ресурсDriveActivity
имеет одно или несколько связанных действий.Action
является самодостаточным, как и событие , в том смысле, что оно включает в себя не только подробный тип и информацию о действии, но такжеActor
,Target
и либоTimestamp
, либоTimeRange
. Чтобы избежать избыточности,Action
не заполняет свои собственные поляTarget
,Actor
или time, если они совпадают с общимDriveActivity
.ActionDetail
: это конкретный тип и подробная информация оAction
. Например, подробное действиеMove
имеет исходное и целевое расположение, аPermissionChange
указывает, кто теперь может получить доступ к документу и с какими привилегиями.
Примеры ответов
Просмотрите следующее, чтобы увидеть примеры ответов.
Пользователь отредактировал файл на Диске.
Ресурс DriveActivity
может включать только одно действие, например редактирование пользователем одного файла.
"activities":[{
"primaryActionDetail":{ "edit":{} },
"actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID " } } } ],
"targets":[ { "driveItem":{ "name":"items/ITEM_ID ", "title":"TITLE ", "file":{} } } ],
"timestamp":{ "seconds":"1536794657", "nanos":791000000 },
"actions":[ { "detail":{ "edit":{} } } ]
}]
Этот вывод включает в себя следующие значения:
- ACCOUNT_ID : идентификатор пользователя. Его можно использовать с People API для получения дополнительной информации.
- ITEM_ID : идентификатор объекта на Диске.
- TITLE : название объекта на Диске.
Обратите внимание, что объект Action
в этом ответе не включает Actor
, Target
или timestamp
, поскольку они совпадают с общим DriveActivity
.
Два пользователя редактировали один и тот же файл в одно и то же время.
При использовании ConsolidationStrategy
связанные действия группируются в один объединенный DriveActivity
. В этом примере сгруппированы два похожих действия: один тип действия Edit
от двух разных пользователей.
"activities":[{
"primaryActionDetail":{ "edit":{} },
"actors":[
{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1 " } } },
{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2 " } } }
],
"targets":[
{ "driveItem":{ "name":"items/ITEM_ID ", "title":"TITLE ", "file":{} } }
],
"timeRange":{
"startTime":{ "seconds":"1541089823", "nanos":712000000 },
"endTime":{ "seconds":"1541089830", "nanos":830000000 }
},
"actions":[
{
"detail":{ "edit":{} },
"actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1 " } } },
"timestamp":{ "seconds":"1541089830", "nanos":830000000 }
},
{
"detail":{ "edit":{} },
"actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2 " } } },
"timestamp":{ "seconds":"1541089823", "nanos":712000000 }
}
]
}]
Этот вывод включает в себя следующие значения:
- ACCOUNT_ID_1 : идентификатор первого пользователя. Его можно использовать с People API для получения дополнительной информации.
- ACCOUNT_ID_2 : идентификатор второго пользователя.
- ITEM_ID : идентификатор объекта на Диске.
- TITLE : название объекта на Диске.
Обратите внимание, что объект Action
в этом ответе не включает Target
, поскольку он совпадает с общим DriveActivity
.
В примере также показано, как приложения могут использовать только сводную информацию в DriveActivity
, не рассматривая отдельные действия. В ответе указано, что два пользователя редактировали данный файл за определенный промежуток времени.
Пользователь переместил два файла в новый каталог.
В этом примере ConsolidationStrategy
сгруппировала два связанных действия Move
, поскольку файлы были перемещены из одного источника в одно и то же место назначения в одно и то же время.
"activities":[{
"primaryActionDetail":{
"move":{
"addedParents":[ { ... } ]
"removedParents":[ { ... } ]
}
},
"actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID " } } } ],
"targets":[
{ "driveItem":{ "name":"items/ITEM_ID_1 ", "title":"TITLE_1 ", "file":{} } },
{ "driveItem":{ "name":"items/ITEM_ID_2 ", "title":"* TITLE_2 ", "file":{} } }
],
"timestamp":{ "seconds":"1541090960", "nanos":985000000 },
"actions":[
{
"detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
"target":{ "driveItem":{ "name":"items/ITEM_ID_1 ", "title":"TITLE_1 ", "file":{} } }
},
{
"detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
"target":{ "driveItem":{ "name":"items/ITEM_ID_2 ", "title":"* TITLE_2 ", "file":{} } }
}
]
}]
Этот вывод включает в себя следующие значения:
- ACCOUNT_ID : идентификатор пользователя. Его можно использовать с People API для получения дополнительной информации.
- ITEM_ID_1 : идентификатор первого элемента Диска.
- ITEM_ID_2 : идентификатор второго элемента Диска.
- TITLE_1 : название первого объекта на Диске.
- TITLE_2 : название второго объекта на Диске.
Обратите внимание, что объект Action
в этом ответе не включает Actor
или timestamp
, поскольку они совпадают с общим DriveActivity
.