In diesem Leitfaden werden die Hauptkomponenten einer Antwort in der Google Drive Activity API anhand von Beispielen und deren Interpretation erläutert.
Objekte
DriveActivity
: Dies ist die primäre Ressource, die bei Abfragen an die Drive Activity API zurückgegeben wird. Es beschreibt einen oder mehrere Akteure, die eine oder mehrere Aktionen ausführen, die ein oder mehrere Ziele betreffen.Timestamp
undTimeRange
: Diese beschreiben entweder einen einzelnen Zeitpunkt, zu dem eine Aktivität stattgefunden hat, oder den Beginn und das Ende der Aktivität über einen bestimmten Zeitraum.Actor
: In der Regel ist einActor
ein Endnutzer. Manchmal kann ein Systemereignis jedoch einAction
auslösen, wenn ein Administrator als Nutzer oder als der Nutzer agiert oder wenn das Ereignis von einer nicht identifizierbaren Person ausgeführt wird. DieActor
-Nachricht enthält jeden dieser Fälle.Target
: EinTarget
ist das Objekt einer Aktivität, z. B. eine Datei, ein Ordner, eine geteilte Ablage oder ein Dateikommentar. Beachten Sie, dass viele Aktionstypen mehr als eine Art von Ziel unterstützen. Beispiel: ObwohlEdit
allgemein für Drive-Dateien gilt, können andere Aktionen wieRename
undCreate
auch für Drive-Ordner und geteilte Ablagen gelten. Ziele, die keine Drive-Elemente sind, können dennoch auf ein Laufwerk verweisen, z. B. auf den Stammordner eines Laufwerks oder auf das übergeordnete Dokument mit einem Dateikommentar.Action
– JedeDriveActivity
-Ressource hat eine oder mehrere zugehörige Aktionen. EinAction
ist wie ein Ereignis in sich geschlossen, da es nicht nur den detaillierten Typ und die Informationen zur Aktion enthält, sondern auch einActor
, eineTarget
und entweder einenTimestamp
oder einenTimeRange
. Um Redundanz zu vermeiden, füllt einAction
keine eigenenTarget
-,Actor
- oder Zeitfelder aus, wenn diese mit dem gesamtenDriveActivity
identisch sind.ActionDetail
: Dies sind der spezifische Typ und die detaillierten Informationen zu einemAction
. EinMove
-Aktionsdetail hat beispielsweise einen Quell- und einen Zielspeicherort und einPermissionChange
gibt an, wer jetzt auf ein Dokument zugreifen kann und mit welchen Berechtigungen.
Beispielantworten
Ein Nutzer hat eine Datei in Google Drive bearbeitet:
Eine einfache DriveActivity
-Ressource kann nur eine Aktion enthalten, z. B. das Bearbeiten einer Datei durch einen Nutzer.
"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":{} } } ]
}]
Diese Ausgabe enthält die folgenden Werte:
- ACCOUNT_ID: die ID des Nutzers. Sie kann zusammen mit der People API verwendet werden, um weitere Informationen zu erhalten.
- ITEM_ID: die ID der Drive-Datei.
- TITLE: der Titel der Drive-Datei.
Hinweis: Action
in dieser Antwort enthält nicht Actor
, Target
oder TimeStamp
, da sie mit der gesamten DriveActivity
identisch sind.
Zwei Nutzer haben dieselbe Datei gleichzeitig bearbeitet:
Wenn die Konsolidierung aktiviert ist, werden zusammengehörige Aktionen in einer DriveActivity
gruppiert. In diesem Beispiel sind zwei ähnliche Aktionen gruppiert: ein Edit
-Aktionstyp von zwei verschiedenen Nutzern.
"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 }
}
]
}]
Diese Ausgabe enthält die folgenden Werte:
- ACCOUNT_ID_1: die ID des ersten Nutzers. Sie kann zusammen mit der People API verwendet werden, um weitere Informationen zu erhalten.
- ACCOUNT_ID_2: die ID des zweiten Nutzers.
- ITEM_ID: die ID der Drive-Datei.
- TITLE: der Titel der Drive-Datei.
Beachten Sie, dass die Aktionen in dieser Antwort nicht das Target
enthalten, da es mit dem gesamten DriveActivity
identisch ist.
Das Beispiel zeigt auch, wie Apps möglicherweise nur die zusammenfassenden Informationen in DriveActivity
verwenden, ohne sich die einzelnen Aktionen anzusehen. Die Antwort gibt an, dass 2 Nutzer eine bestimmte Datei über einen bestimmten Zeitraum bearbeitet haben.
Ein Nutzer hat zwei Dateien in ein neues Verzeichnis verschoben:
In diesem Beispiel wurden im Rahmen der Konsolidierungsstrategie zwei verwandte Move
-Aktionen gruppiert, da die Dateien gleichzeitig aus derselben Quelle zum selben Ziel verschoben wurden.
"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":{} } }
}
]
}]
Diese Ausgabe enthält die folgenden Werte:
- ACCOUNT_ID: die ID des Nutzers. Sie kann zusammen mit der People API verwendet werden, um weitere Informationen zu erhalten.
- ITEM_ID_1: die ID des ersten Drive-Elements.
- ITEM_ID_2: die ID des zweiten Drive-Elements.
- TITLE_1: der Titel des ersten Drive-Elements
- TITLE_2: der Titel des zweiten Drive-Elements
Die Aktionen in dieser Antwort enthalten nicht Actor
oder TimeStamp
, da sie mit der gesamten DriveActivity
identisch sind.