En esta guía, se explica cómo realizar solicitudes en la API de Google Drive Activity con el método activity.query
.
Clave de consulta
Existen 2 maneras de solicitar actividad: por elemento de Google Drive o para todo lo que se encuentra debajo de una jerarquía de carpetas.
itemName
: El formato de esta clave es "items/ITEM_ID". Por lo general, es un archivo en Drive. Si especificas una carpeta para esta clave, se mostrará la actividad de la carpeta, como cuándo se creó o se le 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 establece ninguna clave, se usa de forma predeterminada el ancestorName
de "items/root" y se 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 app debe controlar cantidades arbitrarias en la respuesta.
Los tamaños de página son limitados. Si tu app necesita muchas actividades, realiza varias solicitudes con paginación en lugar de establecer un valor grande para pageSize
.
Específicamente, si puede haber más actividad para recuperar que la que se incluye en la respuesta, esta también contendrá un 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
suelen agruparse y mostrarse 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 procesamiento por lotes) en la solicitud. Esto permite otras agrupaciones de 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 de agruparlos, el DriveActivity
resultante puede tener varios agentes y varios objetivos.
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 para muchos clientes ver solo el contenido de nivel superior de un recurso DriveActivity
(como los actores y los objetivos colectivos dentro de primaryActionDetail
) y, además, ignorar las acciones detalladas en la respuesta.
Filtros
Puedes restringir las acciones que se pueden mostrar en el recurso DriveActivity
con la construcción de una cadena filter
en la solicitud activity.query
. Hay 2 campos compatibles: time
y detail.action_detail_case
.
Filtrar por hora
Para restringir las acciones por período, 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 los siguientes:
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 "tiene" (:
). Usa un valor singular o una lista de tipos de acciones permitidas entre paréntesis, separados 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, antepone un guion (-
) al principio de la cadena de 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 en una sola cadena 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 superior:
{
"ancestorName": "items/ITEM_ID",
"consolidationStrategy": {
"legacy": {}
}
}
Solicita todas las acciones de MOVE
y RENAME
en un elemento de Drive:
{
"itemName": "items/ITEM_ID",
"filter": "detail.action_detail_case:(MOVE RENAME)"
}
Solicita toda la actividad desde el 1 de enero de 2018 (hora del este):
{
"ancestorName": "items/root",
"filter": "time >= \"2018-01-01T00:00:00-05:00\""
}
Solicita 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"
}