Drive Activity API-Datenmodell

In diesem Leitfaden werden die Hauptkomponenten einer Antwort in der Google Drive Activity API anhand von Beispielen erläutert und es wird erklärt, wie sie zu interpretieren sind.

Objekte

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

  • Timestamp und TimeRange: Diese beschreiben entweder einen einzelnen Zeitpunkt, zu dem eine Aktivität aufgetreten ist, oder den Beginn und das Ende, an dem die Aktivität über einen bestimmten Zeitraum hinweg aufgetreten ist.

  • Actor: In der Regel ist eine Actor ein Endnutzer. Manchmal kann ein Systemereignis jedoch ein Action auslösen, wenn ein Administrator als Nutzer oder selbst bzw. von einer nicht identifizierbaren Person ausgeführt wird. Die Nachricht Actor enthält 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. Beachten Sie, dass viele Aktionstypen mehr als eine Art von Ziel unterstützen. Während Edit im Allgemeinen für Drive-Dateien gilt, können andere Aktionen wie Rename und Create auch für Drive-Ordner und geteilte Ablagen gelten. Ziele, die keine Drive-Elemente sind, können dennoch auf ein Element verweisen, z. B. auf den Stammordner eines Laufwerks 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, da es nicht nur den detaillierten Typ und die Informationen über die Aktion enthält, sondern auch ein Actor, ein Target und entweder ein Timestamp- oder ein TimeRange-Objekt. Zur Vermeidung von Redundanzen füllt ein Action keine eigenen Target-, Actor- oder Zeitfelder, wenn diese mit der gesamten DriveActivity übereinstimmen.

  • ActionDetail: Dies sind der spezifische Typ und die detaillierten Informationen zu einem Action. Ein Move-Aktionsdetail hat 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 Google Drive bearbeitet:

Eine einfache DriveActivity-Ressource kann nur eine Aktion enthalten, z. B. dass 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: ID des Nutzers Sie kann mit der People API verwendet werden, um weitere Informationen abzurufen.
  • ITEM_ID: die ID des Drive-Elements
  • TITLE: der Titel des Drive-Elements.

Beachten Sie, dass die Action in dieser Antwort nicht Actor, Target oder TimeStamp enthält, da sie mit der gesamten DriveActivity identisch sind.

Zwei Nutzer haben dieselbe Datei zu gleichen Zeiten bearbeitet:

Wenn die Konsolidierung aktiviert ist, werden zugehörige Aktionen in einer DriveActivity zusammengefasst. In diesem Beispiel werden 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 People API verwendet werden, um weitere Informationen abzurufen.
  • ACCOUNT_ID_2: ID des zweiten Nutzers
  • ITEM_ID: die ID des Drive-Elements
  • TITLE: der Titel des Drive-Elements.

In den Aktionen in dieser Antwort ist Target nicht enthalten, da es mit dem gesamten DriveActivity identisch ist.

Das Beispiel zeigt auch, wie Anwendungen unter Umständen nur die zusammenfassenden Informationen in DriveActivity verwenden, ohne die einzelnen Aktionen zu berücksichtigen. 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 gruppiert die Konsolidierungsstrategie zwei zusammengehörige Move-Aktionen, da die Dateien gleichzeitig von derselben Quelle an dasselbe 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: ID des Nutzers Sie kann mit der People API verwendet werden, um weitere Informationen abzurufen.
  • 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.

Beachten Sie, dass die Aktionen in dieser Antwort Actor oder TimeStamp nicht enthalten, da sie mit der gesamten DriveActivity identisch sind.