Effettuare richieste nell'API Google Drive Activity

Questa guida spiega come effettuare richieste nell'API Google Drive Activity utilizzando il metodo activity.query.

Chiave query

Esistono due modi per richiedere l'attività: per elemento di Google Drive o per tutto al di sotto di una gerarchia di cartelle.

  • itemName: il formato di questa chiave è "items/ITEM_ID". In genere si tratta di un file su Drive. Se specifichi una cartella per questa chiave, vengono mostrate le attività per la cartella, ad esempio quando è stata creata o rinominata.

  • ancestorName: il formato di questa chiave è "items/ITEM_ID" e la risposta include l'attività su tutti gli elementi del sottoalbero sotto questa cartella.

Se non è impostata alcuna chiave, per impostazione predefinita viene utilizzato il ancestorName di "items/root" e viene visualizzata l'attività per tutti gli elementi di Drive.

Impaginazione

Il campo pageSize consente di richiedere un numero approssimativo di attività da restituire in ogni risposta. Il conteggio effettivo delle attività restituite varia, quindi la tua app deve gestire quantità arbitrarie nella risposta.

Le dimensioni delle pagine sono limitate. Se la tua app richiede molte attività, effettua più richieste utilizzando l'impaginazione anziché impostare un valore elevato per pageSize. Nello specifico, se potrebbe esserci più attività da recuperare rispetto a quanto incluso nella risposta, la risposta conterrà anche un nextPageToken. Per recuperare più risultati, ripeti la stessa richiesta, ma aggiungi un campo pageToken con il valore nextPageToken della risposta precedente.

Consolidamento

Gli oggetti Action vengono spesso raggruppati e restituiti all'interno di una singola risorsa DriveActivity. Alcuni raggruppamenti Action si verificano spontaneamente, ad esempio lo spostamento di un elemento in una cartella condivisa che attiva una modifica delle autorizzazioni.

Nella richiesta puoi anche specificare un ConsolidationStrategy (a volte chiamato aggregazione o raggruppamento). In questo modo, è possibile creare altri raggruppamenti di oggetti Action correlati, ad esempio più utenti che modificano un elemento o un Actor che sposta più file in una nuova cartella di Drive.

Un singolo Action ha un Actor e un Target, ma dopo il raggruppamento, il DriveActivity risultante può avere più attori e più target. Tuttavia, anche dopo il raggruppamento, esiste sempre un'azione "principale" che è rappresentativa o la più importante di tutte le azioni nella risorsa DriveActivity, a seconda della strategia di consolidamento richiesta.

Di conseguenza, indipendentemente dal fatto che il consolidamento sia attivo o meno, per molti clienti potrebbe essere sufficiente visualizzare solo i contenuti di primo livello di una risorsa DriveActivity (ad esempio gli attori e i target collettivi all'interno del primaryActionDetail) e ignorare le azioni dettagliate nella risposta.

Filtri

Puoi limitare le azioni che potrebbero essere restituite nella risorsa DriveActivity construendo una stringa filter nella richiesta activity.query. Esistono due campi supportati: time e detail.action_detail_case.

Filtra per ora

Per limitare le azioni in base all'intervallo di tempo, specifica il nome del campo time con operatori numerici per i valori di data, uniti da un "AND" facoltativo. Utilizza i millisecondi dal 1° gennaio 1970 o il formato RFC 3339, ad esempio:

  • time > 1452409200000 AND time <= 1492812924310
  • time >= "2016-01-10T01:02:03-05:00"

Filtra per tipo

Per limitare in base al tipo di azione, applica il nome del campo detail.action_detail_case con l'operatore "ha" (:). Utilizza un valore singolare o un elenco di tipi di azioni consentiti racchiusi tra parentesi, separati da uno spazio. Per trovare un elenco di tipi di azioni, esamina gli oggetti ActionDetail.

Per escludere un tipo di azione dalla risposta, premetti un trattino (-) all'inizio della stringa del filtro.

Ecco alcuni esempi di tipo di azione:

  • detail.action_detail_case:RENAME
  • detail.action_detail_case:(CREATE RESTORE)
  • -detail.action_detail_case:MOVE

Combinazioni

Queste condizioni di filtro possono essere combinate all'interno di una singola stringa filter, ad esempio:

  • detail.action_detail_case:(CREATE EDIT RESTORE) time > 1452409200000

Richieste di esempio

Richiedi le 10 attività più recenti per un elemento di Drive:

{
  "itemName": "items/ITEM_ID",
  "pageSize": 10
}

Richiedi attività consolidate per ogni elemento di Drive sotto una cartella principale:

{
  "ancestorName": "items/ITEM_ID",
  "consolidationStrategy": {
    "legacy": {}
  }
}

Richiedi tutte le azioni MOVE e RENAME su un elemento di Drive:

{
  "itemName": "items/ITEM_ID",
  "filter": "detail.action_detail_case:(MOVE RENAME)"
}

Richiedi tutte le attività dal 1° gennaio 2018 EST:

{
  "ancestorName": "items/root",
  "filter": "time >= \"2018-01-01T00:00:00-05:00\""
}

Richiedi tutte le attività, ad eccezione delle azioni EDIT, durante il mese di giugno 2017 UTC:

{
  "ancestorName": "items/root",
  "filter": "time >= \"2018-06-01T00:00:00Z\" time < \"2018-07-01T00:00:00Z\" -detail.action_detail_case:EDIT"
}