Llama a los métodos de la API de Data Portability

La API de Data Portability consta de los siguientes métodos:

  • portabilityArchive.initiate
  • archiveJobs.getPortabilityArchiveState
  • resetAuthorization
  • archiveJobs.retryPortabilityArchive
  • archiveJobs.cancelPortabilityArchive
  • accessType.check

portabilityArchive.initiate

Llamas al método portabilityArchive.initiate para iniciar un nuevo trabajo de exportación de datos.

Cuando inicias un trabajo de exportación para crear un archivo de datos, debes solicitar el grupo de recursos apropiado y proporcionar un token de OAuth con los permisos necesarios para ese grupo de recursos. El token de OAuth se usa para autorizar la solicitud y determinar qué datos del usuario se exportan.

Para obtener una lista de todos los grupos de recursos compatibles con un servicio en particular, consulta la página de referencia del esquema de ese servicio.

Por ejemplo, si exportas datos de actividad de búsqueda, llamas a InitiatePortabilityArchive(resources = ["myactivity.search"]). La solicitud debe tener un token de OAuth adjunto con el permiso de OAuth de búsqueda: https://www.googleapis.com/auth/dataportability.myactivity.search.

Si bien es posible incluir varios grupos de recursos en una sola llamada a InitiatePortabilityArchive, no se recomienda. Puedes lograr un procesamiento más rápido si realizas solicitudes InitiatePortabilityArchive independientes para cada grupo de recursos. Ten en cuenta que, cuando solicitas varios grupos de recursos, el token de OAuth adjunto debe tener todos los permisos adecuados.

Por ejemplo, en lugar de llamar a InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"]) para crear un archivo de datos para la búsqueda y la actividad de YouTube, realiza estas llamadas separadas: InitiatePortabilityArchive(resources = ["myactivity.search"]) y InitiatePortabilityArchive(resources = ["myactivity.youtube"]).

La solicitud InitiatePortabilityArchive muestra un job_id. Este ID de trabajo se usa para recuperar el estado del archivo de datos.

archiveJobs.getPortabilityArchiveState

Se llama al método archiveJobs.getPortabilityArchiveState para recuperar el estado actual de la tarea de exportación del archivo de datos. Cuando llames a getPortabilityArchiveState, proporciona el job_id: GetPortabilityArchiveState(job_id). También debes proporcionar un token de OAuth con permisos que coincidan con los grupos de recursos que se usan en la solicitud initiate.

Si el estado es COMPLETE, se muestran URLs firmadas de Cloud Storage que puedes usar para descargar los datos. Las URLs firmadas vencen después de seis horas, y los datos están disponibles durante 14 días.

Una solicitud de archivo puede tardar varios minutos, varias horas o incluso varios días en completarse, según el volumen de datos. Puedes verificar el estado del archivo cada cinco o 60 minutos.

resetAuthorization

El método resetAuthorization hace lo siguiente:

  • Revocar todos los permisos de OAuth otorgados por el usuario
  • Permite que tu aplicación llame a InitiatePortabilityArchive para un grupo de recursos que usaste anteriormente.
  • Quita el acceso a los archivos de datos anteriores.

Cuando llames a resetAuthorization, debes proporcionar un token de OAuth adjunto para el usuario cuya autorización restableces.

archiveJobs.retryPortabilityArchive

Se llama al método archiveJobs.retryPortabilityArchive para volver a intentar trabajos fallidos en los que el método archiveJobs.getPortabilityArchiveState ya mostró un estado de FAILED. Esto puede ocurrir debido a una falla transitoria en el backend. En ese caso, puedes volver a intentar la exportación sin obtener un token de OAuth nuevo del usuario. Cuando llames a retryPortabilityArchive, proporciona el job_id junto con un token de OAuth válido. Luego, el extremo intenta crear una exportación para los mismos grupos de recursos solicitados en la solicitud initiatePortabilityArchive inicial. Si la respuesta es correcta, este extremo muestra un job_id nuevo que puedes usar en llamadas a getPortabilityArchiveState. Un trabajo con errores se puede reintentar hasta tres veces.

Por ejemplo:

  1. Llamas a InitiatePortabilityArchive(resources = ["myactivity.search"]) y recibes job_id: 0.

  2. Después de llamar a GetPortabilityArchiveState(0), recibes JobSate: FAILED.

  3. Luego, puedes llamar a RetryPortabilityArchive(0) para recibir job_id: 1 para resources = ["myactivity.search"].

  4. Luego, puedes seguir haciendo llamadas a GetPortabilityArchiveState(1).

archiveJobs.cancelPortabilityArchive

Se llama al método archiveJobs.cancelPortabilityArchive para cancelar una tarea individual sin revocar los tokens existentes cuando tienes acceso continuo a los datos del usuario. Esto es útil cuando ya no se necesita un trabajo o un recurso y quieres restablecer la cuota de trabajo. Para que se cancele, el trabajo debe ser IN_PROGRESS y haberse creado con acceso basado en el tiempo.

Por ejemplo, puedes cancelar un trabajo en curso basado en el tiempo para myactivity.youtube y youtube.public_videos y, luego, iniciar un trabajo nuevo solo para myactivity.youtube.

accessType.check

El método accessType.check te permite verificar si un token de OAuth autoriza el acceso basado en el tiempo o único antes de iniciar un trabajo. Por ejemplo, es posible que desees exportar todo el historial de un usuario si otorga acceso único, o solo el último día si otorga acceso basado en el tiempo.

La respuesta contiene dos campos: listas de IDs de grupos de recursos de portabilidad de datos únicos y basados en el tiempo autorizados por el token de OAuth que se usó en la solicitud. Los usuarios no pueden mezclar tipos de acceso en una concesión de tokens, pero no debes asumir necesariamente ese comportamiento en el futuro.