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.TimestampiTimeRange: 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:Actorto 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śćActorobejmuje wszystkie te przypadki.Target:Targetto 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:Editdotyczy zwykle plików na Dysku, ale inne działania, takie jakRenameiCreate, 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óbDriveActivityma co najmniej jedno powiązane działanie.Actionjest samodzielne, podobnie jak zdarzenie, ponieważ zawiera nie tylko szczegółowy typ i informacje o działaniu, ale takżeActor,TargetorazTimestamplubTimeRange. Aby uniknąć powtórzeń, elementActionnie wypełnia pólTarget,Actorani czasu, jeśli są one takie same jak w przypadku elementuDriveActivity.ActionDetail: szczegółowe informacje o konkretnymAction. Na przykład szczegóły działaniaMovezawierają lokalizację źródłową i docelową, aPermissionChangeokreś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.