En esta guía, se explican los componentes principales de una respuesta en la API de actividad de Google Drive, se muestran ejemplos y cómo interpretarlos.
Objetos
DriveActivity
: Este es el recurso principal que muestran las consultas a la API de Drive Activity. Se describe uno o más actores que realizan una o más acciones que afectan a uno o más objetivos.Timestamp
yTimeRange
: Describen, respectivamente, un momento individual en el que ocurrió la actividad, o el inicio y el final de cuando la actividad ocurrió durante un período.Actor
: Por lo general, unActor
es un usuario final. Sin embargo, a veces, un evento del sistema puede activar unaAction
cuando un administrador actúa como usuario o como él mismo, o cuando lo realiza una persona no identificable. El mensajeActor
encapsula cada uno de estos casos.Target
: UnTarget
es el objeto de una actividad, como un archivo, una carpeta, una unidad compartida o un comentario de archivo. Ten en cuenta que muchos tipos de acciones admiten más de un tipo de objetivo. Por ejemplo, aunqueEdit
generalmente se aplica a los archivos de Drive, otras acciones comoRename
yCreate
también se pueden aplicar a las carpetas y unidades compartidas de Drive. Los destinos que no son elementos de Drive pueden hacer referencia a uno solo, como la carpeta raíz de una unidad o el documento superior que contiene un comentario de archivo.Action
: Cada recursoDriveActivity
tiene una o más acciones relacionadas. UnAction
es independiente, al igual que un evento, en el sentido de que comprende no solo el tipo y la información detallados sobre la acción, sino también unActor
, unTarget
y unTimestamp
oTimeRange
. Para evitar redundancias, unaAction
no propaga sus propios campos deTarget
,Actor
o de hora cuando estos son los mismos que los delDriveActivity
general.ActionDetail
: Es el tipo específico y la información detallada sobre unAction
. Por ejemplo, un detalle de la acciónMove
tiene una ubicación de origen y de destino, y unaPermissionChange
especifica quién ahora puede acceder a un documento y con qué privilegios.
Respuestas de ejemplo
Un usuario editó un archivo en Drive:
Un recurso DriveActivity
simple puede incluir solo una acción, como que un usuario edite un archivo.
"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":{} } } ]
}]
En esta salida, se incluyen los siguientes valores:
- ACCOUNT_ID: Es el ID del usuario. Se puede usar con la API de Personas para obtener más información.
- ITEM_ID: Es el ID del elemento de Drive.
- TITLE: Es el título del elemento de Drive.
Ten en cuenta que el Action
en esta respuesta no incluye el Actor
, el Target
ni el TimeStamp
porque son los mismos que los DriveActivity
en general.
Dos usuarios editaron el mismo archivo en momentos similares:
Cuando la consolidación está activada, las acciones relacionadas se agrupan en un DriveActivity
. En este ejemplo, se agrupan 2 acciones similares: un tipo de acción Edit
de 2 usuarios diferentes.
"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 }
}
]
}]
En esta salida, se incluyen los siguientes valores:
- ACCOUNT_ID_1: Es el ID del primer usuario. Se puede usar con la API de People para obtener más información.
- ACCOUNT_ID_2: Es el ID del segundo usuario.
- ITEM_ID: Es el ID del elemento de Drive.
- TITLE: Es el título del elemento de Drive.
Ten en cuenta que las acciones de esta respuesta no incluyen el Target
, ya que es lo mismo que el DriveActivity
general.
En el ejemplo, también se ilustra cómo las apps podrían usar solo la información de resumen en DriveActivity
, sin mirar las acciones individuales. La respuesta indica que 2 usuarios editaron un archivo determinado durante un período.
Un usuario movió 2 archivos a un directorio nuevo:
En este ejemplo, la estrategia de consolidación agrupó 2 acciones Move
relacionadas porque los archivos se trasladaron de la misma fuente al mismo destino al mismo tiempo.
"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":{} } }
}
]
}]
En esta salida, se incluyen los siguientes valores:
- ACCOUNT_ID: Es el ID del usuario. Se puede usar con la API de Personas para obtener más información.
- ITEM_ID_1: Es el ID del primer elemento de Drive.
- ITEM_ID_2: Es el ID del segundo elemento de Drive.
- TITLE_1: Es el título del primer elemento de Drive.
- TITLE_2: Es el título del segundo elemento de Drive.
Ten en cuenta que las acciones en esta respuesta no incluyen Actor
ni TimeStamp
porque son las mismas que las DriveActivity
en general.