W tym przewodniku objaśniamy główne komponenty odpowiedzi w interfejsie Google Drive Activity API oraz przedstawiamy przykłady i sposoby ich interpretacji.
Obiekty
DriveActivity
– to podstawowy zasób zwracany przez zapytania do interfejsu Drive Activity API. Opisuje on jednego lub więcej podmiotów wykonujących co najmniej 1 działanie mające wpływ na co najmniej jeden cel.Timestamp
iTimeRange
– opisują one odpowiednio pojedynczy punkt w czasie wystąpienia aktywności lub początek i koniec aktywności w danym okresie.Actor
– zwykleActor
to użytkownik końcowy. Czasami jednak zdarzenie systemowe może aktywowaćAction
, gdy administrator działa jako użytkownik lub sam albo wykonuje czynność niemożliwą do zidentyfikowania. WiadomośćActor
obejmuje każdy z tych przypadków.Target
– obiektTarget
jest obiektem działania, takiego jak plik, folder, dysk współdzielony lub komentarz do pliku. Pamiętaj, że wiele typów działań obsługuje więcej niż jeden rodzaj celu. Na przykład chociaż zasadaEdit
zwykle ma zastosowanie do plików na Dysku, inne działania, takie jakRename
iCreate
, mogą też mieć zastosowanie do folderów na Dysku i dysków współdzielonych. Cele, które nie są elementami na Dysku, mogą nadal odwoływać się do nich, np. do folderu głównego dysku lub dokumentu nadrzędnego zawierającego komentarz do pliku.Action
– każdy zasóbDriveActivity
ma co najmniej 1 powiązane działanie. ElementAction
jest autonomiczny (tak jak zdarzenie) tym, że zawiera nie tylko szczegółowy typ i informacje o danym działaniu, ale też elementyActor
,Target
iTimestamp
lubTimeRange
. Aby uniknąć nadmiarowości, poleAction
nie wypełnia własnych pólTarget
,Actor
ani czasu, gdy są one takie same jak ogólne polaDriveActivity
.ActionDetail
– typ i szczegółowe informacje oAction
. Na przykład szczegóły działaniaMove
zawierają lokalizację źródłową i docelową, a elementPermissionChange
określa, kto i z jakimi uprawnieniami ma teraz dostęp do dokumentu.
Przykładowe odpowiedzi
Użytkownik zmodyfikował plik na Dysku:
Prosty zasób DriveActivity
może zawierać tylko 1 działanie, np. edycję 1 pliku przez użytkownika.
"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":{} } } ]
}]
Dane wyjściowe zawierają następujące 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.
Pamiętaj, że Action
w tej odpowiedzi nie zawiera tych elementów: Actor
, Target
ani TimeStamp
, ponieważ są one identyczne z ogólnymi wartościami DriveActivity
.
Dwóch użytkowników edytowało ten sam plik w podobnym czasie:
Gdy konsolidacja jest włączona, powiązane działania są zgrupowane w jedną DriveActivity
. W tym przykładzie są zgrupowane 2 podobne działania: 1 typ działania Edit
od 2 różnych użytkowników.
"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 }
}
]
}]
Dane wyjściowe zawierają następujące 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.
Działania w tej odpowiedzi nie obejmują obiektu Target
, ponieważ jest on taki sam jak ogólny DriveActivity
.
Ten przykład pokazuje też, jak aplikacje mogą korzystać tylko z podsumowań informacji dostępnych w polu DriveActivity
, bez uwzględniania poszczególnych działań. Odpowiedź wskazuje, że 2 użytkowników edytowało dany plik w określonym czasie.
Użytkownik przeniósł 2 pliki do nowego katalogu:
W tym przykładzie strategia konsolidacji grupowała 2 powiązane działania Move
, ponieważ pliki zostały jednocześnie przeniesione z tego samego źródła do tego samego miejsca docelowego.
"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":{} } }
}
]
}]
Dane wyjściowe zawierają następujące 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.
Działania w tej odpowiedzi nie obejmują Actor
ani TimeStamp
, ponieważ są one takie same jak ogólne DriveActivity
.