Modello dei dati dell'API Drive Activity

Questa guida illustra i componenti principali di una risposta nell'API Google Drive Activity, mostrando esempi e come interpretarli.

Oggetti

  • DriveActivity: è la risorsa principale restituita dalle query all'API Drive Activity. Descrive uno o più attori che eseguono una o più azioni relative a uno o più obiettivi.

  • Timestamp e TimeRange: descrivono rispettivamente un singolo momento in cui si è verificata l'attività o l'inizio e la fine di quando si è verificata l'attività in un determinato periodo di tempo.

  • Actor: in genere, Actor è un utente finale. Tuttavia, a volte un evento di sistema può attivare un Action quando un amministratore agisce come utente o come se stesso oppure quando eseguito da una persona non identificabile. Il messaggio Actor incapsula ciascuno di questi casi.

  • Target: un Target è l'oggetto di un'attività, ad esempio un file, una cartella, un Drive condiviso o un commento su un file. Tieni presente che molti tipi di azioni supportano più tipi di target. Ad esempio, anche se Edit si applica in genere ai file di Drive, altre azioni come Rename e Create possono essere applicate anche alle cartelle di Drive e ai Drive condivisi. Le destinazioni che non sono elementi di Drive possono comunque fare riferimento a uno di questi elementi, ad esempio la cartella principale di un'unità o il documento principale contenente un commento al file.

  • Action: ogni DriveActivity risorsa ha una o più azioni correlate. Un Action è indipendente, come un evento, in quanto comprende non solo il tipo dettagliato e le informazioni sull'azione, ma anche Actor, Target e Timestamp o TimeRange. Per evitare la ridondanza, un Action non compila i propri campi Target, Actor o temporali se sono uguali a quelli DriveActivity totali.

  • ActionDetail: si tratta del tipo specifico e delle informazioni dettagliate su Action. Ad esempio, un dettaglio di un'azione Move ha una posizione di origine e di destinazione e un PermissionChange specifica chi può ora accedere a un documento e con quali privilegi.

Risposte di esempio

Un utente ha modificato un file su Drive:

Una risorsa DriveActivity semplice potrebbe includere una sola azione, ad esempio la modifica di un file da parte dell'utente.

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

Questo output include i seguenti valori:

  • ACCOUNT_ID: l'ID dell'utente. Può essere utilizzato con l' API People per ottenere ulteriori informazioni.
  • ITEM_ID: l'ID dell'elemento di Drive.
  • TITLE: il titolo dell'elemento di Drive.

Tieni presente che Action in questa risposta non include Actor, Target o TimeStamp perché sono gli stessi della DriveActivity complessiva.

Due utenti hanno modificato lo stesso file in momenti simili:

Quando il consolidamento è attivo, le azioni correlate vengono raggruppate in un'unica DriveActivity. In questo esempio, vengono raggruppate due azioni simili: un tipo di azione Edit da 2 utenti diversi.

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

Questo output include i seguenti valori:

  • ACCOUNT_ID_1: l'ID del primo utente. Può essere utilizzata con l'API People per ottenere ulteriori informazioni.
  • ACCOUNT_ID_2: l'ID del secondo utente.
  • ITEM_ID: l'ID dell'elemento di Drive.
  • TITLE: il titolo dell'elemento di Drive.

Tieni presente che le azioni in questa risposta non includono Target perché è lo stesso dell'elemento DriveActivity complessivo.

L'esempio illustra anche come le app potrebbero utilizzare solo le informazioni di riepilogo in DriveActivity, senza esaminare le singole azioni. La risposta indica che 2 utenti hanno modificato un determinato file in un intervallo di tempo.

Un utente ha spostato 2 file in una nuova directory:

In questo esempio, la strategia di consolidamento ha raggruppato due azioni Move correlate perché i file sono stati spostati dalla stessa origine alla stessa destinazione nello stesso momento.

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

Questo output include i seguenti valori:

  • ACCOUNT_ID: l'ID dell'utente. Può essere utilizzato con l' API People per ottenere ulteriori informazioni.
  • ITEM_ID_1: l'ID del primo elemento di Drive.
  • ITEM_ID_2: l'ID del secondo elemento di Drive.
  • TITLE_1: il titolo del primo elemento di Drive.
  • TITLE_2: il titolo del secondo elemento di Drive.

Tieni presente che le azioni in questa risposta non includono Actor o TimeStamp perché sono le stesse dell'elemento DriveActivity complessivo.