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

Ce guide décrit les principaux composants d'une réponse dans l'API Google Drive Activity, en montrant des exemples et 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 : ils décrivent respectivement un moment précis où l'activité s'est produite, ou le début et la fin du moment où l'activité s'est produite sur une période donnée.

  • Actor : généralement, Actor correspond à un utilisateur final. Cependant, un événement système peut parfois déclencher une erreur Action lorsqu'un administrateur agit en tant qu'utilisateur ou en son nom, ou lorsqu'il est effectué par une personne non identifiable. Le message Actor encapsule chacun de ces cas.

  • Target : Target est l'objet d'une activité, comme un fichier, un dossier, un Drive 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 tout de même faire référence à l'un d'entre eux, comme le dossier racine d'un Drive ou le document parent contenant un commentaire sur un fichier.

  • Action : chaque ressource DriveActivity a une ou plusieurs actions associées. 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 un TimeRange. Pour éviter toute redondance, une Action ne remplit pas ses propres champs Target, Actor ou de temps s'ils sont identiques à l'élément DriveActivity global.

  • ActionDetail : type spécifique et informations détaillées concernant un élément Action. Par exemple, un détail d'action Move a un emplacement source et de destination, et un élément PermissionChange spécifie qui peut désormais accéder à un document et avec quels privilèges.

Exemples de réponses

Un utilisateur a modifié un fichier dans Drive:

Une ressource DriveActivity simple peut inclure une seule action, telle qu'un utilisateur modifiant un fichier.

"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":{} } } ]
}]

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 les éléments Action de cette réponse n'incluent pas Actor, Target ni TimeStamp, car ils sont identiques à l'élément DriveActivity global.

Deux utilisateurs ont modifié le même fichier au même moment:

Lorsque le regroupement est activé, les actions associées sont regroupées dans un seul DriveActivity. Dans cet exemple, deux actions similaires sont regroupées: un type d'action Edit de deux utilisateurs différents.

"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 }
    }
  ]
}]

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 les actions de cette réponse n'incluent pas le Target, car il est identique au 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 dans un nouveau répertoire:

Dans cet exemple, la stratégie de consolidation 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 au même moment.

"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":{} } }
    }
  ]
}]

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 les actions de cette réponse n'incluent pas Actor ni TimeStamp, car elles sont identiques à l'DriveActivity globale.