Integra el Selector de Google en apps para computadoras y dispositivos móviles

En este documento, se explica cómo integrar el Selector de Google en tus apps para computadoras y dispositivos móviles con la API del Selector de Google.

La API de Google Picker es una forma de permitir que los usuarios seleccionen o suban archivos de Google Drive. Los usuarios pueden otorgar permiso a tu app para dispositivos móviles, de escritorio o web para acceder a sus datos de Drive, lo que proporciona una forma segura y autorizada de interactuar con sus archivos.

Funciones

El Selector de Google tiene varias funciones:

  • Una apariencia similar a la de la IU de Google Drive
  • Varias vistas que muestran vistas previas y miniaturas de archivos de Drive.
  • Vistas con filtros previos que solo muestran tipos de archivos específicos (como PDFs o imágenes) o ciertas carpetas.
  • Se redirecciona al Selector de Google en una pestaña nueva del navegador predeterminado del usuario.

Ten en cuenta que, si bien puedes seleccionar y subir archivos con el Selector de Google, no permite que los usuarios organicen, muevan ni copien archivos de una carpeta a otra. Para administrar archivos, debes usar la API de Google Drive o la IU de Drive.

Requisitos previos

Las apps que usan el selector de Google deben cumplir con todas las Condiciones del Servicio existentes. Lo más importante es que debes identificarte correctamente en tus solicitudes.

También debes tener un proyecto de Google Cloud.

Configura tu entorno

Para comenzar a usar la API de Google Picker, debes configurar tu entorno.

Habilita la API

Antes de usar las APIs de Google, debes activarlas en un proyecto de Google Cloud. Puedes activar una o más APIs en un solo proyecto de Google Cloud.

Configura la autenticación y la autorización

Para autenticar a los usuarios finales y acceder a sus datos en tu app, debes crear uno o más IDs de cliente de OAuth 2.0. Un ID de cliente se usa con el fin de identificar una sola app para los servidores de OAuth de Google. Si tu app se ejecuta en varias plataformas, debes crear un ID de cliente independiente para cada una de ellas.

Autoriza credenciales para una app de escritorio

Para crear un ID de cliente de OAuth 2.0, sigue estos pasos:

  1. En la consola de APIs de Google, ve a Menú > Plataforma de Google Auth > Clientes.

    Ir a Clientes

  2. Haz clic en Crear cliente.
  3. Haz clic en Tipo de aplicación > App para computadoras.
  4. En el campo Nombre, escribe un nombre para la credencial. Este nombre solo se muestra en la Consola de APIs de Google.
  5. Haz clic en Crear.

    La credencial recién creada aparecerá en "IDs de cliente de OAuth 2.0".

Para que las apps obtengan autorización para acceder a los archivos a los que ya se les otorgó acceso, debes seguir estos pasos:

  1. Debes obtener un token de OAuth 2.0 con el permiso drive.file, drive o drive.readonly siguiendo estas instrucciones: Usa OAuth 2.0 para acceder a las APIs de Google. Para obtener más información sobre los permisos, consulta Cómo elegir permisos de la API de Google Drive.

  2. Pasa el token de OAuth 2.0 a la API de Drive para leer y modificar los archivos a los que el usuario otorgó acceso anteriormente.

Autoriza las credenciales para tu app para dispositivos móviles

Para crear un ID de cliente de OAuth 2.0, sigue los pasos que se indican en Autoriza credenciales para una app para dispositivos móviles.

Autoriza las credenciales para tu app web

Para crear un ID de cliente de OAuth 2.0, sigue los pasos que se indican en Autoriza credenciales para una app web.

Cómo mostrar el Selector de Google

La API de Google Picker para apps para computadoras y dispositivos móviles redirecciona al Selector de Google en una pestaña nueva del navegador predeterminado del usuario. Una vez que el usuario otorga acceso y elige los archivos pertinentes, el Selector de Google vuelve a la app que lo llamó a través de la URL de devolución de llamada.

Para que la API de Google Picker se abra en una página del cliente, usa la API de Google Picker para apps web. Para obtener más información, consulta Cómo integrar el Selector de Google en apps web.

Para permitir que los usuarios otorguen acceso a archivos adicionales o elijan archivos para usarlos en el flujo de tu app, sigue estos pasos:

  1. Solicita acceso al permiso drive.file para abrir la página de acceso de OAuth 2.0 en una pestaña nueva del navegador siguiendo estas instrucciones: Usa OAuth 2.0 para acceder a las APIs de Google. Para obtener más información sobre los permisos, consulta Cómo elegir permisos de la API de Google Drive.

    Ten en cuenta que solo se permite el alcance drive.file para estas apps y no se puede combinar con ningún otro alcance.

  2. La URL de la nueva pestaña del navegador acepta todos los parámetros estándar de la cadena de consulta de OAuth.

    Debes agregar los parámetros de URL prompt y trigger_onepick a tu solicitud de URL de autorización de OAuth 2.0. De manera opcional, también puedes personalizar el Selector de Google con varios parámetros más:

    Parámetro Descripción Estado
    prompt=consent Solicitar acceso a archivos Obligatorio
    trigger_onepick=true Habilita el Selector de Google. Obligatorio
    allow_multiple=true Si es verdadero, permite que el usuario seleccione varios archivos. Opcional
    mimetypes=MIMETYPES Es una lista separada por comas de tipos de MIME para filtrar los resultados de la búsqueda. Si no se configura, se muestran en la vista los archivos de todos los tipos de MIME. Opcional
    file_ids=FILE_IDS Es una lista de IDs de archivos separados por comas para filtrar los resultados de la búsqueda. Si no se configura, se mostrarán todos los archivos en la vista. Opcional
    allow_folder_selection=true Si es verdadero, permite que el usuario también seleccione carpetas. Opcional

    En el siguiente ejemplo, se muestra una solicitud de URL de autorización de OAuth 2.0:

    https://accounts.google.com/o/oauth2/v2/auth? \
    client_id=CLIENT_ID \
    &scope=https://www.googleapis.com/auth/drive.file \
    &redirect_uri=REDIRECT_URI \
    &response_type=code \
    &access_type=offline \
    &prompt=consent \
    &trigger_onepick=true
    

    Reemplaza lo siguiente:

    • CLIENT_ID: Es el ID de cliente de tu app.

    • REDIRECT_URI: Es el lugar al que el servidor de autorización redirecciona el navegador del usuario después de una autenticación exitosa. Por ejemplo, https://www.cymbalgroup.com/oauth2callback.

      El redirect_uri especificado debe ser una URL HTTPS pública. Si deseas usar un protocolo personalizado o una URL de localhost para tu redirect_uri, debes usar una URL de HTTPS pública que luego redireccione al protocolo personalizado o a la URL de localhost.

  3. Una vez que el usuario otorga acceso y elige los archivos pertinentes, OAuth redirecciona al redirect_uri especificado en la solicitud con los siguientes parámetros de URL anexados:

    • picked_file_ids: Si el usuario otorgó acceso y eligió archivos, es una lista separada por comas de los IDs de los archivos seleccionados.

    • code: Es el token de acceso o el código de acceso según el parámetro response_type establecido en la solicitud. Este parámetro incluye un nuevo código de autorización.

    • scope: Son los alcances incluidos en la solicitud.

    • error: Si el usuario canceló la solicitud dentro del flujo de consentimiento, se muestra un error.

    En el siguiente ejemplo, se muestra una respuesta de URL de autorización de OAuth 2.0:

    https://REDIRECT_URI?picked_file_ids=PICKED_FILE_IDS&code=CODE&scope=SCOPES
    
  4. Las apps deben intercambiar el código de autorización del paso 3 por un token de OAuth 2.0 nuevo. Para obtener más información, consulta Intercambia el código de autorización por tokens de actualización y acceso.

  5. Luego, las apps pueden usar los IDs de archivo del parámetro de URL del paso 3 y el token de OAuth 2.0 obtenido en el paso 4 para llamar a la API de Drive. Para obtener más información, consulta la descripción general de la API de Google Drive.

Cómo usar el Selector de Google con apps para Android

También puedes usar el Selector de Google en tus apps para dispositivos móviles Android.

Autoriza credenciales para una app para dispositivos móviles

Para usar el Selector de Google en tu app para Android, debes autorizar a los usuarios con OAuth 2.0, de manera similar a las apps para computadoras. Para obtener detalles sobre la autenticación en Android, consulta Autoriza el acceso a los datos del usuario de Google.

Para mostrar el Selector de Google durante la autorización, crea un AuthorizationRequest y usa el parámetro de recurso PICKER_OAUTH_TRIGGER en el objeto AuthorizationRequest.ResourceParameter.

Cuando compiles el AuthorizationRequest, haz lo siguiente:

  • Usa el alcance drive.file.

  • Llama a setOptOutIncludingGrantedScopes para true y asegúrate de que el token devuelto sea solo para el permiso de drive.file y no para ningún permiso otorgado anteriormente.

  • Establece el campo AuthorizationRequest.Prompt en CONSENT para solicitar el consentimiento del usuario incluso si ya lo otorgó.

  • De manera opcional, puedes usar el operador "OR" (|) de mapa de bits para establecer el campo AuthorizationRequest.Prompt en SELECT_ACCOUNT y permitir que el usuario seleccione una cuenta antes de que se muestre el mensaje de consentimiento.

Cómo llamar al Selector de Google

Al igual que con las apps para computadoras, puedes personalizar el Selector de Google con varios parámetros opcionales:

  • PICKER_ALLOW_MULTIPLE: Permite que los usuarios seleccionen varios archivos.
  • PICKER_MIMETYPES: Acepta una lista separada por comas de tipos de MIME para filtrar los resultados de la búsqueda. Si no se configura, se mostrarán los archivos de todos los tipos de MIME en la vista.
  • PICKER_FILE_IDS: Acepta una lista separada por comas de IDs de archivos para filtrar los resultados de la búsqueda. Si no se configura, se mostrarán todos los archivos en la vista.
  • PICKER_ALLOW_FOLDER_SELECTION: Permite que los usuarios también elijan carpetas.

Para obtener más información sobre los parámetros opcionales en las apps para computadoras, consulta Cómo mostrar el Selector de Google.

Una vez que el usuario otorga acceso y elige los archivos pertinentes, se devuelve el objeto getTokenResponseParams del recurso AuthorizationResult. Si el usuario otorgó acceso, este objeto contiene el valor picked_file_ids, que es una lista separada por comas de los IDs de los archivos seleccionados.