Modèle de données de l'API Drive Activity

Ce guide explique les principaux composants d'une réponse dans l'API Google Drive Activity, en donnant des exemples et en expliquant comment les interpréter.

Objets

  • DriveActivity: il s'agit de la ressource principale renvoyée par les requêtes adressées à l'API Drive Activity. Il décrit un ou plusieurs acteurs effectuant une ou plusieurs actions affectant une ou plusieurs cibles.

  • Timestamp et TimeRange: ces valeurs décrivent respectivement un seul point dans le temps où l'activité s'est produite, ou le début et la fin de l'activité sur une période donnée.

  • Actor: en général, un Actor est un utilisateur final. Toutefois, un événement système peut parfois déclencher une Action lorsqu'un administrateur agit en tant qu'utilisateur ou en tant que lui-même, ou lorsqu'il est effectué par une personne non identifiable. Le message Actor encapsule chacun de ces cas.

  • Target: un Target est l'objet d'une activité, comme un fichier, un dossier, un lecteur partagé ou un commentaire sur un fichier. Notez que de nombreux types d'actions sont compatibles avec plusieurs types de cibles. Par exemple, bien que Edit s'applique généralement aux fichiers Drive, d'autres actions telles que Rename et Create peuvent également s'appliquer aux dossiers Drive et aux Drive partagés. Les cibles qui ne sont pas des éléments Drive peuvent toujours s'y référer, par exemple le dossier racine d'un lecteur ou le document parent contenant un commentaire de fichier.

  • Action: chaque ressource DriveActivity est associée à une ou plusieurs actions. Un Action est autonome, comme un événement, en ce sens qu'il comprend non seulement le type détaillé et les informations sur l'action, mais aussi un Actor, un Target et un Timestamp ou TimeRange. Pour éviter les redondances, un Action ne renseigne pas ses propres champs Target, Actor ou de temps lorsqu'ils sont identiques à ceux de l'DriveActivity global.

  • ActionDetail: type spécifique et informations détaillées sur un Action. Par exemple, les détails d'une action Move comportent un emplacement source et de destination, et un PermissionChange spécifie qui peut désormais accéder à un document et avec quels droits.

Exemples de réponses

Consultez les exemples de réponses ci-dessous.

Un utilisateur a modifié un fichier dans Drive

Une ressource DriveActivity ne peut inclure qu'une seule action, par exemple un utilisateur qui modifie un fichier.

"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[ { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } } ],
  "timestamp":{ "seconds":"1536794657", "nanos":791000000 },
  "actions":[ { "detail":{ "edit":{} } } ]
}]

Ce résultat inclut les valeurs suivantes :

  • ACCOUNT_ID: ID de l'utilisateur. Vous pouvez l'utiliser avec l' API People pour obtenir plus d'informations.
  • ITEM_ID: ID de l'élément Drive.
  • TITLE: titre de l'élément Drive.

Notez que l'objet Action de cette réponse n'inclut pas Actor, Target ou timestamp, car ils sont identiques à l'DriveActivity global.

Deux utilisateurs ont modifié le même fichier à des heures proches

Lorsqu'un ConsolidationStrategy est utilisé, les actions associées sont regroupées dans un DriveActivity combiné. Dans cet exemple, deux actions similaires sont regroupées: un type d'action Edit de deux utilisateurs différents.

"activities":[{
  "primaryActionDetail":{ "edit":{} },
  "actors":[
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
    { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } }
  ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID", "title":"TITLE", "file":{} } }
  ],
  "timeRange":{
    "startTime":{ "seconds":"1541089823", "nanos":712000000 },
    "endTime":{ "seconds":"1541089830", "nanos":830000000 }
  },
  "actions":[
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_1" } } },
      "timestamp":{ "seconds":"1541089830", "nanos":830000000 }
    },
    {
      "detail":{ "edit":{} },
      "actor":{ "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID_2" } } },
      "timestamp":{ "seconds":"1541089823", "nanos":712000000 }
    }
  ]
}]

Ce résultat inclut les valeurs suivantes :

  • ACCOUNT_ID_1: ID du premier utilisateur. Vous pouvez l'utiliser avec l'API People pour obtenir plus d'informations.
  • ACCOUNT_ID_2: ID du deuxième utilisateur.
  • ITEM_ID: ID de l'élément Drive.
  • TITLE: titre de l'élément Drive.

Notez que l'objet Action de cette réponse n'inclut pas Target, car il est identique à DriveActivity global.

L'exemple montre également comment les applications peuvent n'utiliser que les informations récapitulatives de DriveActivity, sans examiner les actions individuelles. La réponse indique que deux utilisateurs ont modifié un fichier donné sur une période donnée.

Un utilisateur a déplacé deux fichiers vers un nouveau répertoire.

Dans cet exemple, ConsolidationStrategy a regroupé deux actions Move associées, car les fichiers ont été déplacés de la même source vers la même destination en même temps.

"activities":[{
  "primaryActionDetail":{
    "move":{
      "addedParents":[ { ... } ]
      "removedParents":[ { ... } ]
    }
  },
  "actors":[ { "user":{ "knownUser":{ "personName":"people/ACCOUNT_ID" } } } ],
  "targets":[
    { "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } },
    { "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
  ],
  "timestamp":{ "seconds":"1541090960", "nanos":985000000 },
  "actions":[
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_1", "title":"TITLE_1", "file":{} } }
    },
    {
      "detail":{ "move":{ "addedParents":[ { ... } ] "removedParents":[ { ... } ] } },
      "target":{ "driveItem":{ "name":"items/ITEM_ID_2", "title":"* TITLE_2", "file":{} } }
    }
  ]
}]

Ce résultat inclut les valeurs suivantes :

  • ACCOUNT_ID: ID de l'utilisateur. Vous pouvez l'utiliser avec l' API People pour obtenir plus d'informations.
  • ITEM_ID_1: ID du premier élément Drive.
  • ITEM_ID_2: ID du deuxième élément Drive.
  • TITLE_1: titre du premier élément Drive.
  • TITLE_2: titre du deuxième élément Drive.

Notez que l'objet Action de cette réponse n'inclut pas Actor ni timestamp, car ils sont identiques à l'DriveActivity global.