W tym przewodniku omawiamy główne komponenty odpowiedzi w interfejsie Google Drive Activity API. pokazując przykłady i sposoby ich interpretacji.
Obiekty
DriveActivity
– to główny zasób zwracany przez zapytania do interfejsu Drive Activity API. it opisuje jednego lub więcej aktorów wykonujących co najmniej jedną czynność, które wpływają na co najmniej więcej celów.Timestamp
iTimeRange
– te opisują odpowiednio pojedynczy punkt w czasie, w którym aktywność lub początek i koniec okresu, w którym aktywność miała miejsce w okresie obecnie się znajdujesz.Actor
– zwykleActor
to do użytkownika. Niekiedy jednak zdarzenie systemowe może wywołaćAction
, gdy administrator pełni rolę administratora użytkownika lub użytkownika albo gdy wykonuje je osoba nieidentyfikowalna. KomunikatActor
zawiera każdy z tych przypadków.Target
– obiektem jestTarget
. 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. Dla: chociażEdit
ogólnie ma zastosowanie do plików na Dysku, inne działania takie jakRename
iCreate
mogą być również stosowane na Dysku folderów i dysków współdzielonych. Cele, które nie są elementami na Dysku nadal może odwoływać się do elementu, na przykład do folderu głównego dysku lub do folderu nadrzędnego dokument zawierający komentarz do pliku.Action
– każdeDriveActivity
zasób ma co najmniej 1 powiązane działanie. PoleAction
jest niezależne, na przykład event, ponieważ obejmuje nie tylko szczegółowy typ i informacje ale teżActor
,Target
iTimestamp
lubTimeRange
. Aby uniknąć nadmiarowości, poleAction
nie jest wypełniane własną.Target
,Actor
lub pola czasu, gdy są takie same jak wartości ogólne.DriveActivity
ActionDetail
– jest to konkretnego typu oraz szczegółowych informacji oAction
. Na przykład plik Szczegóły działaniaMove
mają lokalizację źródłową i docelową oraz PolePermissionChange
określa, kto i kiedy może uzyskiwać dostęp do dokumentu uprawnień.
Przykładowe odpowiedzi
Użytkownik zmodyfikował plik na Dysku:
Prosty zasób DriveActivity
może zawierać tylko jedno działanie, na przykład użytkownika
edytowanie jednego pliku.
"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że być używana z People API, by uzyskać więcej informacji.
- ITEM_ID: identyfikator elementu na Dysku.
- TITLE: tytuł elementu na Dysku.
Pamiętaj, że pole Action
w tej odpowiedzi nie zawiera tych elementów: Actor
, Target
,
lub TimeStamp
, bo są takie same jak ogólna wartość DriveActivity
.
Dwóch użytkowników edytowało ten sam plik w podobnym czasie:
Gdy konsolidacja jest włączona, powiązane działania są grupowane w jedno
DriveActivity
W tym przykładzie są zgrupowane 2 podobne działania: jedno Edit
typu działania 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że być używana z People API.
- 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ą pola Target
, ponieważ jest to
tyle samo co DriveActivity
.
Ten przykład pokazuje też, jak aplikacje mogą korzystać tylko z podsumowań informacji w polu
DriveActivity
bez wyświetlania poszczególnych działań. Odpowiedź
wskazuje, że 2 użytkowników edytowało dany plik w danym okresie.
Użytkownik przeniósł 2 pliki do nowego katalogu:
W tym przykładzie strategia konsolidacji zgrupowała 2 powiązane działania Move
ponieważ pliki zostały przeniesione z tego samego źródła do tego samego miejsca docelowego w
jednocześnie.
"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że być używana z People API, by 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
bo są takie same jak ogólne DriveActivity
.