Para configurar OAuth en tu aplicación, debes configurar un flujo de trabajo de OAuth y habilitar los permisos de OAuth de la API de Data Portability.
Configura un flujo de trabajo de OAuth
Para configurar un flujo de OAuth para tu aplicación, sigue los pasos básicos que se indican en la documentación de Identidad de Google.
La mayoría de los desarrolladores usan el flujo de apps web del servidor para obtener el consentimiento de OAuth, pero también puedes usar el flujo de apps web de JavaScript o el flujo de apps para dispositivos móviles y de escritorio.
Las exportaciones pueden tardar más que la vida útil de un token de acceso, o el usuario podría otorgar 30 o 180 días de acceso. Es posible que debas obtener un token de actualización y intercambiarlo periódicamente por un token de acceso nuevo. Para obtener más detalles, consulta Cómo actualizar un token de acceso para aplicaciones web y Cómo actualizar un token de acceso para aplicaciones para dispositivos móviles y computadoras.
Importante: La renovación de tokens de OAuth solo está disponible para los usuarios si tu cliente de OAuth tiene un estado de publicación de En producción, no de Prueba. Además, los tokens otorgados a los clientes de OAuth con un estado de publicación Testing siempre vencen en 7 días, incluso si seleccionas una duración de 30 o 180 días. Para obtener más información, consulta Configura tu pantalla de consentimiento de OAuth.
Alcances de OAuth de la API de Data Portability
Cuando configures tu aplicación de la API de Data Portability para OAuth, habilita los permisos de OAuth de la API de Data Portability que sean relevantes para tu aplicación. Algunos permisos son sensitive
y restricted
, y están sujetos a requisitos adicionales.
Cuando agregas los permisos de la API de Data Portability a tu flujo de OAuth, es posible que haya casos en los que el usuario dé su consentimiento para algunos, pero no para todos los permisos. Tu app debe poder controlar estos casos de las siguientes maneras:
- Permite exportaciones de datos parciales
- Notificar al usuario que no seleccionó todos los permisos necesarios (y fallar de forma elegante)
- Solicitar al usuario los consentimientos restantes
Además, el usuario elige si otorgarte acceso a sus datos una vez o durante 30 o 180 días.
- Si un usuario te otorga acceso único, tu app puede realizar una exportación de datos para ese consentimiento específico. Para volver a descargar los datos, necesitas un nuevo consentimiento del usuario.
- Si un usuario te otorga acceso basado en el tiempo, tu app puede realizar exportaciones de datos durante el período especificado o hasta que el usuario revoque el consentimiento.
- También puedes aplicar filtros de tiempo a tu solicitud para exportar datos de un período específico, como los últimos 6 meses.
También debes tener en cuenta que, durante el flujo de OAuth, tu app no sabe qué Cuenta de Google se usó para dar consentimiento. El token de OAuth que recibe tu aplicación es opaco.
Si buscas información sobre cómo los usuarios comparten datos, consulta Cómo compartir una copia de tus datos con un tercero.
Restricciones de alcance
En esta sección, se abordan las restricciones en los alcances que generan errores.
Permisos mixtos
Las solicitudes de alcances de la API de Portabilidad de datos (como https://www.googleapis.com/auth/dataportability.*) no se pueden mezclar con otros alcances (como https://www.googleapis.com/auth/userinfo.email). Este es un ejemplo de una solicitud incorrecta, con la parte restringida en negrita:
https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search+https://www.googleapis.com/auth/userinfo.email&
include_granted_scopes=false
Permisos otorgados anteriormente
Nunca debes configurar include_granted_scopes=true
cuando solicites permisos de DPAPI.
Este es un ejemplo de una solicitud incorrecta, con la parte restringida en negrita:
https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search&
include_granted_scopes=true
Demasiados alcances
Si tu solicitud tiene demasiados permisos adjuntos, es posible que veas un
error 400 bad request
. Esto ocurre cuando la longitud de la URL supera lo que se admite en los navegadores. Para resolver el problema, divide tus solicitudes de permisos en varios lotes más pequeños y usa la autorización incremental para solicitar el consentimiento para cada lote.
Categorías de permisos
Para obtener una lista de todos los permisos de OAuth compatibles con la API de Portabilidad de datos y sus categorías, consulta Permisos de OAuth disponibles. Para obtener una lista de todos los grupos de recursos y los permisos de OAuth compatibles con un servicio en particular, consulta la página de referencia del esquema de ese servicio.