Datenmodell der Drive Activity API

In diesem Leitfaden werden die Hauptkomponenten einer Antwort in der Google Drive Activity API erläutert. anhand von Beispielen und deren Interpretation.

Objekte

  • DriveActivity: Die primäre Ressource, die durch Abfragen an die Drive Activity API zurückgegeben wird Es beschreibt einen oder mehrere Akteure, die eine oder mehrere Aktionen durchführen, die ein oder mehrere mehr Ziele zu erreichen.

  • Timestamp und TimeRange: Diese entweder einen einzelnen Zeitpunkt, an dem die Aktivität oder den Beginn und das Ende der Aktivität über einen Zeitraum von .

  • Actor: Normalerweise ist ein Actor Endanwendenden. Manchmal kann jedoch ein Systemereignis Action, wenn ein Administrator als oder wenn sie von einer nicht identifizierbaren Person ausgeführt werden. Die Die Actor-Nachricht schließt jeden dieser Fälle ein.

  • Target: Target ist das Objekt. z. B. eine Datei, einen Ordner, eine geteilte Ablage oder einen Dateikommentar. Beachten Sie, dass viele Aktionstypen mehr als eine Art von Ziel unterstützen. Für Obwohl Edit im Allgemeinen für Drive-Dateien gilt, sind andere Aktionen wie Rename und Create können auch auf Google Drive angewendet werden Ordner und geteilten Ablagen. Ziele, die keine Drive-Elemente sind kann weiterhin auf ein Laufwerk verweisen, z. B. auf den Stammordner eines Laufwerks oder auf das übergeordnete Element. Dokument mit einem Dateikommentar.

  • Action: Jeweils DriveActivity Ressource eine oder mehrere zugehörige Aktionen hat. Ein Action ist eigenständig, wie ein event, da es nicht nur den detaillierten Typ und die detaillierten Informationen enthält. zur Aktion, sondern auch Actor, Target und entweder Timestamp oder TimeRange. Um Redundanz zu vermeiden, füllt ein Action nicht selbst mit Daten Target-, Actor- oder Zeitfelder, wenn diese mit dem Gesamtwert DriveActivity.

  • ActionDetail: spezifischen Typ und detaillierte Informationen über Action. Beispiel: Das Aktionsdetail Move hat einen Quell- und einen Zielspeicherort sowie ein PermissionChange gibt an, wer jetzt mit welchen Berechtigungen auf ein Dokument zugreifen kann. Berechtigungen.

Beispielantworten

Ein Nutzer hat eine Datei in Google Drive bearbeitet:

Eine einfache DriveActivity-Ressource kann nur eine Aktion enthalten, z. B. einen Nutzer eine Datei zu bearbeiten.

"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. Es kann mit dem People API ein, um weitere Informationen zu erhalten.
  • ITEM_ID: die ID der Drive-Datei.
  • TITLE: der Titel der Drive-Datei.

Hinweis: Das Action in dieser Antwort enthält nicht Actor, Target, oder TimeStamp, weil sie identisch mit den DriveActivity insgesamt sind.

Zwei Nutzer haben dieselbe Datei gleichzeitig bearbeitet:

Wenn die Konsolidierung aktiviert ist, werden zusammengehörige Aktionen in einer Gruppe zusammengefasst DriveActivity In diesem Beispiel sind zwei ähnliche Aktionen gruppiert: eine Edit Aktionstyp von zwei verschiedenen Nutzern erstellen.

"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. Es kann mit die People API, 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.

Die Aktionen in dieser Antwort enthalten nicht Target, da es sich um ist identisch mit dem gesamten DriveActivity.

Das Beispiel zeigt auch, dass Apps möglicherweise nur die zusammenfassenden Informationen in DriveActivity, ohne die einzelnen Aktionen zu betrachten. 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 im Rahmen der Konsolidierungsstrategie zwei zusammengehörige Move-Aktionen gruppiert da die Dateien von der gleichen Quelle zum selben Ziel .

"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. Es kann mit dem People API ein, 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

Hinweis: Die Aktionen in dieser Antwort enthalten nicht Actor oder TimeStamp. weil sie identisch mit den Gesamt-DriveActivity sind.