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