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:
Llamas a
InitiatePortabilityArchive(resources = ["myactivity.search"])
y recibesjob_id: 0
.Después de llamar a
GetPortabilityArchiveState(0)
, recibesJobSate: FAILED
.Luego, puedes llamar a
RetryPortabilityArchive(0)
para recibirjob_id: 1
pararesources = ["myactivity.search"]
.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.