Ten przewodnik wyjaśnia główne składniki odpowiedzi w interfejsie Google Drive Activity API, prezentując przykłady i sposób ich interpretacji.
Obiekty
DriveActivity
: to główne źródło danych zwracane przez zapytania do interfejsu Drive Activity API. Opisuje on co najmniej 1 podmiot wykonujący co najmniej 1 działanie wpływające na co najmniej 1 docel.Timestamp
iTimeRange
: te elementy opisują odpowiednio pojedynczy punkt w czasie, w którym nastąpiło działanie, lub początek i koniec okresu, w którym miało ono miejsce.Actor
:Actor
to zwykle użytkownik końcowy. Czasami jednak zdarza się, że zdarzenie systemowe powodujeAction
, gdy administrator działa jako użytkownik lub jako on sam, albo gdy jest ono wywołane przez nierozpoznawalnego użytkownika. WiadomośćActor
obejmuje wszystkie te przypadki.Target
:Target
to obiekt aktywności, np. plik, folder, dysk współdzielony lub komentarz do pliku. Pamiętaj, że wiele typów działań obsługuje więcej niż 1 rodzaj docelowego. Na przykład:Edit
dotyczy zwykle plików na Dysku, ale inne działania, takie jakRename
iCreate
, mogą również dotyczyć folderów na Dysku i dysków współdzielonych. Docelowe elementy, które nie są elementami Dysku, mogą się do nich odwoływać, np. folder główny dysku lub nadrzędny dokument zawierający komentarz do pliku.Action
: każdy zasóbDriveActivity
ma co najmniej jedno powiązane działanie.Action
jest samodzielne, podobnie jak zdarzenie, ponieważ zawiera nie tylko szczegółowy typ i informacje o działaniu, ale takżeActor
,Target
orazTimestamp
lubTimeRange
. Aby uniknąć powtórzeń, elementAction
nie wypełnia pólTarget
,Actor
ani czasu, jeśli są one takie same jak w przypadku elementuDriveActivity
.ActionDetail
: szczegółowe informacje o konkretnymAction
. Na przykład szczegóły działaniaMove
zawierają lokalizację źródłową i docelową, aPermissionChange
określa, kto ma teraz dostęp do dokumentu i jakie ma uprawnienia.
Przykładowe odpowiedzi
Aby zobaczyć przykładowe odpowiedzi, zapoznaj się z poniższymi informacjami.
Użytkownik edytował plik na Dysku.
Zasób DriveActivity
może zawierać tylko jedno działanie, np. edytowanie przez użytkownika jednego pliku.
"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":{} } } ]
}]
Dane wyjściowe zawierają te wartości:
- ACCOUNT_ID: identyfikator użytkownika. Można go używać z interfejsem People API, aby uzyskać więcej informacji.
- ITEM_ID: identyfikator elementu na Dysku.
- TITLE: tytuł elementu na Dysku.
Zwróć uwagę, że obiekt Action
w tej odpowiedzi nie zawiera wartości Actor
, Target
ani timestamp
, ponieważ są one takie same jak ogólna wartość DriveActivity
.
2 użytkownicy edytowali ten sam plik w podobnym czasie
Gdy używasz ConsolidationStrategy
, powiązane działania są grupowane w jedną połączoną DriveActivity
. W tym przykładzie 2 podobie do siebie działania są zgrupowane: jeden typ działania Edit
od 2 różnych użytkowników.
"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 }
}
]
}]
Dane wyjściowe zawierają te wartości:
- ACCOUNT_ID_1: identyfikator pierwszego użytkownika. Można go używać z interfejsem People API, aby uzyskać więcej informacji.
- ACCOUNT_ID_2: identyfikator drugiego użytkownika.
- ITEM_ID: identyfikator elementu na Dysku.
- TITLE: tytuł elementu na Dysku.
Zwróć uwagę, że obiekt Action
w tej odpowiedzi nie zawiera obiektu Target
, ponieważ jest on taki sam jak ogólny obiekt DriveActivity
.
Przykład pokazuje też, jak aplikacje mogą używać tylko informacji podsumowanych w DriveActivity
, bez sprawdzania poszczególnych działań. Odpowiedź wskazuje, że w danym przedziale czasu 2 użytkownicy edytowali dany plik.
Użytkownik przeniósł 2 pliki do nowego katalogu
W tym przykładzie ConsolidationStrategy
zgrupowało 2 powiązane działania Move
, ponieważ pliki zostały przeniesione z tego samego źródła do tego samego miejsca docelowego w tym samym czasie.
"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":{} } }
}
]
}]
Dane wyjściowe zawierają te wartości:
- ACCOUNT_ID: identyfikator użytkownika. Można go używać z interfejsem People API, aby uzyskać więcej informacji.
- ITEM_ID_1: identyfikator pierwszego elementu na Dysku.
- ITEM_ID_2: identyfikator drugiego elementu na Dysku.
- TITLE_1: tytuł pierwszego elementu na Dysku.
- TITLE_2: tytuł drugiego elementu na Dysku.
Pamiętaj, że obiekt Action
w tej odpowiedzi nie zawiera elementów Actor
ani timestamp
, ponieważ są one takie same jak w całościowym elemencie DriveActivity
.