En esta guía, se explican las diferencias entre las APIs de actividad de Google Drive v1 y v2, y cómo cambiar tu aplicación v1 para que sea compatible con la API v2.
Autorización
La API v1 utilizó este alcance:
https://www.googleapis.com/auth/activity
La API v2 requiere uno de los siguientes alcances:
https://www.googleapis.com/auth/drive.activity
https://www.googleapis.com/auth/drive.activity.readonly
Nombres de recursos
En la API v1, los identificadores para objetos como los elementos y los usuarios de Google Drive eran cadenas opacas. En la API v2, por lo general, se hace referencia a estos objetos mediante nombres de recursos. Para obtener más información, consulta la Guía de diseño de la API de Cloud.
Por lo general, estos identificadores se pueden convertir. Por ejemplo, se hace referencia a los elementos de Drive en la API v2 con el nombre del recurso items/ITEM_ID_V1
.
Solicitudes
El formato de solicitud para la v2 es similar al de la v1. Específicamente, aún puedes solicitar actividad para un archivo de Drive o una entidad principal de Drive, aunque debes tener en cuenta que debes darles formato a esos parámetros de solicitud como nombres de recursos mediante el prefijo items/
.
"Agrupación" ahora se llama Consolidación y se quitaron los parámetros de solicitud source
y userId
.
También hay nuevas opciones de Filtro que te permiten restringir los tipos de datos de actividad que se muestran en la respuesta.
Acciones
En la API v1, el tipo de actividad y los datos asociados con esa actividad estaban en campos separados. Por ejemplo, si el campo primaryEventType
contenía el valor move
, las apps supondrían que un campo move
de nivel superior se propaga con los elementos superiores agregados y quitados.
En la API v2, estos campos ya no son distintos. El mensaje ActionDetail
tiene exactamente un campo configurado. Indica el tipo de acción y contiene los detalles asociados con esa acción. Por ejemplo, una ActionDetail
que representa un movimiento solo establece el campo move
, y ese campo enumera los elementos superiores agregados y quitados.
El campo primaryEventType
de la API de la versión 1 se corresponde, a grandes rasgos, con el primaryActionDetail
de la versión 2.
Actors
En la API v1, la actividad que se muestra contenía un User
si el actor era un usuario conocido y, de manera opcional, contenía un campo de nivel superior, como fromUserDeletion
, para casos especiales.
En la API v2, hay un conjunto más completo de tipos Actor
disponible, y user.knownUser
se propaga cuando el actor es un usuario conocido. Si tu aplicación necesita información detallada sobre los usuarios, puede consultarla desde la API de People pasando el campo KnownUser
personName
al método people.get
.
Destinos
En la versión 1 de la API, los objetivos siempre eran elementos de Drive. En la API v2, los objetivos pueden ser otros tipos de objetos en Drive. Por ejemplo, los cambios en una unidad tienen un tipo de destino Drive
. Aún se muestra la carpeta raíz de una unidad compartida (como DriveItem
en el campo root
), pero no es el destino inmediato de la actividad. Se aplica un concepto similar a un recurso FileComment
, cuyo campo parent
hace referencia al elemento de Drive que contiene el subproceso de comentarios de destino.
Actividad consolidada
En la API v1, el estilo de respuesta cambiaba cuando se configuraba una estrategia de consolidación ("agrupación"). En particular, cuando se activó la consolidación, cada actividad contenía el singleEvents
constituyente y un combinedEvent
que resumían la actividad común entre esos eventos constituyentes. Cuando se desactivaba la consolidación, el campo combinedEvent
contenía el evento no consolidado original para cada actividad. Cualquiera de estos eventos podría representar más de una acción, como una creación y una acción.
En la API v2, el estilo de la respuesta no cambia en función de la estrategia de consolidación, ya que el DriveActivity
que se muestra siempre contiene el conjunto completo de actores, objetivos y acciones.