Cómo realizar solicitudes en la API de Google Drive Activity

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En esta guía, se explica cómo realizar solicitudes en la API de actividad de Google Drive con el método activity.query.

Clave de consulta

Hay 2 maneras de solicitar actividad: por elemento de Google Drive o para todo lo que esté debajo de una jerarquía de carpetas.

  • itemName: El formato de esta clave es "items/ITEM_ID". Por lo general, es un archivo que está en Drive. Si especificas una carpeta para esta clave, se muestra la actividad de la carpeta, como cuándo se creó o se cambió el nombre.

  • ancestorName: El formato de esta clave es "items/ITEM_ID", y la respuesta incluye la actividad en todos los elementos del subárbol debajo de esta carpeta.

Cuando no se configura una clave, la configuración predeterminada es el uso de ancestorName de “items/root” y muestra la actividad de todos los elementos de tu unidad de Drive.

Paginación

El campo pageSize te permite solicitar una cantidad aproximada de actividades para mostrar en cada respuesta. El recuento real de las actividades que se muestran variará, por lo que tu aplicación debería manejar cantidades arbitrarias en la respuesta.

El tamaño de las páginas es limitado. Si tu app necesita muchas actividades, realiza varias solicitudes con la paginación en lugar de establecer un valor grande para pageSize. Específicamente, si hay más actividad para recuperar que lo que se incluye en la respuesta, la respuesta también contendrá una nextPageToken. Para recuperar más resultados, repite la misma solicitud, pero agrega un campo pageToken con el valor de nextPageToken de la respuesta anterior.

del costo

Los objetos Action a menudo se agrupan y muestran en un solo recurso DriveActivity. Algunas agrupaciones de Action se producen de forma espontánea, como cuando se mueve un elemento a una carpeta compartida y se activa un cambio de permiso.

También puedes especificar un ConsolidationStrategy (a veces llamado agregación o agrupación en lotes) en la solicitud. Esto permite agrupar otros objetos Action relacionados, como varios actores que editan un elemento o un Actor que mueve varios archivos a una nueva carpeta de Drive.

Si bien un Action individual tiene un Actor y un Target, después del agrupamiento, el DriveActivity resultante puede tener varios actores y varios destinos. Sin embargo, incluso después de la agrupación, siempre hay una acción "principal" que es representativa, o la más importante, de todas las acciones en el recurso DriveActivity, según la estrategia de consolidación solicitada.

Como resultado, ya sea que la consolidación esté activada o no, podría ser suficiente que muchos clientes vean solo el contenido de nivel superior de un recurso DriveActivity (como los actores y los objetivos colectivos dentro de primaryActionDetail) y que ignoren las acciones detalladas en la respuesta.

Filtros

Puedes restringir las acciones que se pueden mostrar en el recurso DriveActivity si creas una string filter en la solicitud activity.query. Hay 2 campos compatibles: time y detail.action_detail_case.

Filtrar por hora

Para restringir las acciones por intervalo de tiempo, especifica el nombre del campo time con operadores numéricos en los valores de fecha, unidos por un “AND” opcional. Usa milisegundos desde el 1 de enero de 1970 o el formato RFC 3339, como se muestra a continuación:

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

Filtrar por tipo

Para restringir por tipo de acción, aplica el nombre de campo detail.action_detail_case con el operador “has” (:). Usa un valor único o una lista de tipos de acciones permitidas entre paréntesis, separadas por un espacio. Para encontrar una lista de tipos de acciones, revisa los objetos ActionDetail.

Para excluir un tipo de acción de la respuesta, agrega un guion (-) al comienzo de la string del filtro.

Estos son algunos ejemplos de tipos de acciones:

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

Combinaciones

Estas condiciones de filtrado se pueden combinar dentro de una sola string filter, como la siguiente:

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

Solicitudes de ejemplo

Solicita las 10 actividades más recientes de un elemento de Drive:

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

Solicita actividades consolidadas para cada elemento de Drive debajo de una carpeta principal:

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

Solicita todas las acciones MOVE y RENAME sobre un elemento de Drive:

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

Solicite toda la actividad desde el 1 de enero de 2018 EST:

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

Solicitar toda la actividad, excepto las acciones de EDIT, durante junio de 2017 UTC:

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