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

portabilityArchive.initiate

Llama 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 adecuado 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 exportarán.

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, llama 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, esto no se recomienda. Puedes lograr un procesamiento más rápido si realizas solicitudes InitiatePortabilityArchive separadas 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 adjuntos.

Por ejemplo, en lugar de llamar a InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"]) para crear un archivo de datos para la actividad de la Búsqueda y 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 state actual del trabajo de exportación de archivos de datos. Cuando llamas a getPortabilityArchiveState, debes proporcionar el job_id: GetPortabilityArchiveState(job_id). También debes proporcionar un token de OAuth con alcances que coincidan con los grupos de recursos que se usan en la solicitud initiate.

Si el estado es COMPLETE, se muestran las URLs de Cloud Storage firmadas que puedes usar para descargar los datos. Las URL 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 a 60 minutos.

resetAuthorization

El método resetAuthorization hace lo siguiente:

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

Cuando llamas a resetAuthorization, debes proporcionar un token de OAuth adjunto para el usuario cuya autorización vas a restablecer.

archiveJobs.retryPortabilityArchive

Se llama al método archiveJobs.retryPortabilityArchive para reintentar los trabajos con errores en los que el método archiveJobs.getPortabilityArchiveState ya mostró un state de FAILED. Esto puede ocurrir debido a una falla transitoria en el backend. En ese caso, puedes reintentar la exportación sin obtener un token de OAuth nuevo del usuario. Cuando llamas a retryPortabilityArchive, proporcionas 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 se ejecuta de forma 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. Tú llamas a InitiatePortabilityArchive(resources = ["myactivity.search"]) y recibes job_id: 0.

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

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

  4. Luego, podrás seguir haciendo llamadas a GetPortabilityArchiveState(1).