Datenmodell der Drive Activity API

In diesem Leitfaden werden die Hauptkomponenten einer Antwort in der Google Drive Activity API erläutert. Außerdem finden Sie Beispiele und Informationen zur Interpretation.

Objekte

  • DriveActivity: Dies ist die primäre Ressource, die von Abfragen an die Drive Activity API zurückgegeben wird. Sie beschreibt eine oder mehrere Akteure, die eine oder mehrere Aktionen ausführen, die sich auf ein oder mehrere Ziele auswirken.

  • Timestamp und TimeRange: Mit diesen Ereignissen wird jeweils ein einzelner Zeitpunkt beschrieben, zu dem eine Aktivität stattgefunden hat, oder der Beginn und das Ende eines Zeitraums, in dem die Aktivität stattgefunden hat.

  • Actor: In der Regel ist ein Actor ein Endnutzer. Manchmal kann ein Systemereignis jedoch eine Action auslösen, wenn ein Administrator als Nutzer oder in seiner eigenen Rolle agiert oder wenn die Aktion von einer nicht identifizierbaren Person ausgeführt wird. Die Actor-Nachricht umschließt jeden dieser Fälle.

  • Target: Ein Target ist das Objekt einer Aktivität, z. B. eine Datei, ein Ordner, eine geteilte Ablage oder ein Dateikommentar. Viele Aktionstypen unterstützen mehrere Zieltypen. Edit gilt beispielsweise allgemein für Drive-Dateien, aber auch andere Aktionen wie Rename und Create können auf Drive-Ordner und geteilte Ablagen angewendet werden. Ziele, die keine Drive-Elemente sind, können sich dennoch auf ein Drive-Element beziehen, z. B. auf den Stammordner einer Drive-Aufbewahrungsstelle oder das übergeordnete Dokument, das einen Dateikommentar enthält.

  • Action: Jede DriveActivity-Ressource hat eine oder mehrere zugehörige Aktionen. Ein Action ist wie ein Ereignis in sich geschlossen. Es enthält nicht nur den detaillierten Typ und Informationen zur Aktion, sondern auch ein Actor, ein Target und entweder ein Timestamp oder TimeRange. Um Redundanzen zu vermeiden, werden in einer Action keine eigenen Felder für Target, Actor oder Zeit angegeben, wenn diese mit den Feldern der gesamten DriveActivity übereinstimmen.

  • ActionDetail: Dies ist der spezifische Typ und detaillierte Informationen zu einer Action. Ein Move-Aktionshinweis enthält beispielsweise einen Quell- und einen Zielspeicherort und ein PermissionChange gibt an, wer jetzt mit welchen Berechtigungen auf ein Dokument zugreifen kann.

Beispielantworten

Ein Nutzer hat eine Datei in Drive bearbeitet:

Eine einfache DriveActivity-Ressource kann nur eine Aktion enthalten, z. B. wenn ein Nutzer eine Datei bearbeitet.

"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 mit der People API verwendet werden, um weitere Informationen zu erhalten.
  • ITEM_ID: die ID des Drive-Elements.
  • TITLE: der Titel des Drive-Elements.

Beachten Sie, dass die Action in dieser Antwort keine Actor, Target oder TimeStamp enthält, da sie mit der GesamtDriveActivity übereinstimmen.

Zwei Nutzer haben dieselbe Datei ungefähr zur selben Zeit bearbeitet:

Wenn die Zusammenführung aktiviert ist, werden ähnliche Aktionen in einer einzigen DriveActivity zusammengefasst. 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 mit der Personen API verwendet werden, um weitere Informationen zu erhalten.
  • ACCOUNT_ID_2: die ID des zweiten Nutzers.
  • ITEM_ID: die ID des Drive-Elements.
  • TITLE: der Titel des Drive-Elements.

Die Aktionen in dieser Antwort enthalten keine Target, da sie mit der Gesamt-DriveActivity identisch ist.

Das Beispiel zeigt auch, wie Apps nur die Zusammenfassungsinformationen in DriveActivity verwenden, ohne sich die einzelnen Aktionen anzusehen. Die Antwort gibt an, dass zwei Nutzer eine bestimmte Datei über einen bestimmten Zeitraum bearbeitet haben.

Ein Nutzer hat zwei Dateien in ein neues Verzeichnis verschoben:

In diesem Beispiel wurden mit der Zusammenführungsstrategie zwei ähnliche Move-Aktionen gruppiert, da die Dateien gleichzeitig von derselben Quelle an denselben Zielort 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 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 weder Actor noch TimeStamp, da sie mit der Gesamtzahl DriveActivity übereinstimmen.