Intégrer le sélecteur Google aux applications de bureau et mobiles

Ce document explique comment intégrer le sélecteur Google à vos applications de bureau et mobiles à l'aide de l'API Google Picker.

L'API Google Picker permet aux utilisateurs de sélectionner ou d'importer des fichiers Google Drive. Les utilisateurs peuvent autoriser votre application de bureau, mobile ou Web à accéder à leurs données Drive, ce qui leur permet d'interagir avec leurs fichiers de manière sécurisée et autorisée.

Fonctionnalités

Le sélecteur Google offre plusieurs fonctionnalités :

  • Une apparence similaire à l'interface utilisateur de Google Drive.
  • Plusieurs vues affichant des aperçus et des miniatures des fichiers Drive.
  • Des vues préfiltrées qui n'affichent que des types de fichiers spécifiques (comme des PDF ou des images) ou certains dossiers.
  • Une redirection vers le sélecteur Google dans un nouvel onglet du navigateur par défaut de l'utilisateur. Pour que l'API Google Picker s'ouvre dans une page client, utilisez l'API Google Picker pour les applications Web plutôt.

Notez que si vous pouvez sélectionner et importer des fichiers avec le sélecteur Google, il ne permet pas aux utilisateurs d'organiser, de déplacer ni de copier des fichiers d'un dossier à un autre. Pour gérer des fichiers, vous devez utiliser l'API Google Drive ou l'interface utilisateur Drive.

Prérequis

Les applications qui utilisent le sélecteur Google doivent respecter toutes les conditions d'utilisation existantes. Plus important encore, vous devez vous identifier correctement dans vos requêtes.

Vous devez également disposer d'un projet Google Cloud.

Configurer votre environnement

Pour commencer à utiliser l'API Google Picker, vous devez configurer votre environnement.

Activer l'API

Avant d'utiliser les API Google, vous devez les activer dans un projet Google Cloud. Vous pouvez activer une ou plusieurs API dans un même projet Google Cloud.
  • Dans la console Google Cloud, activez l'API Google Picker.

    Activer l'API

Configurer l'authentification et l'autorisation

Pour authentifier les utilisateurs finaux et accéder aux données utilisateur dans votre application, vous devez créer un ou plusieurs ID client OAuth 2.0. Un ID client sert à identifier une application unique auprès des serveurs OAuth de Google. Si votre application s'exécute sur plusieurs plates-formes, vous devez créer un ID client distinct pour chacune d'elles.

Autoriser les identifiants pour une application de bureau

Pour créer un ID client OAuth 2.0, procédez comme suit :

  1. Dans la console Google Cloud, accédez à Menu > Plate-forme d'authentification Google > Clients.

    Accéder à "Clients"

  2. Cliquez sur Créer un client.
  3. Cliquez sur Type d'application > Sélectionnez le type d'application recommandé pour votre application.
  4. Dans le champ Nom, saisissez un nom pour l'identifiant. Ce nom ne s'affiche que dans la console Google Cloud.
  5. Cliquez sur Créer.

    L'identifiant que vous venez de créer s'affiche sous "ID client OAuth 2.0".

Pour que les applications soient autorisées à accéder aux fichiers auxquels elles avaient déjà accès, procédez comme suit :

  1. Vous devez obtenir un jeton OAuth 2.0 avec l'habilitation drive.file, drive, ou drive.readonly en suivant ces instructions : Utiliser OAuth 2.0 pour accéder aux API Google. Pour en savoir plus sur les habilitations, consultez Choisir les habilitations de l'API Google Drive scopes.

  2. Transmettez le jeton OAuth 2.0 à l'API Drive pour lire et modifier les fichiers auxquels l'utilisateur a déjà accordé l'accès.

Autoriser les identifiants pour votre application mobile

Pour créer un ID client OAuth 2.0, suivez les étapes décrites dans Autoriser les identifiants pour une application mobile.

Autoriser les identifiants pour votre application Web

Pour créer un ID client OAuth 2.0, suivez les étapes décrites dans Autoriser les identifiants pour une application Web.

Afficher le sélecteur Google

L'API Google Picker pour les applications de bureau et mobiles redirige vers le sélecteur Google dans un nouvel onglet du navigateur par défaut de l'utilisateur. Une fois que l'utilisateur a accordé l'accès et sélectionné les fichiers concernés, le sélecteur Google revient à l'application appelante via l'URL de rappel.

  • Écran d'authentification de l'UI du sélecteur Google

    Authentifiez votre application en déclenchant le sélecteur Google.

  • Boîte de dialogue "Se connecter avec Google" et des autorisations

    Connectez-vous avec Google et accordez les autorisations demandées.

  • Interface de sélection de fichiers Google Drive dans le sélecteur

    Parcourez vos fichiers Google Drive dans le sélecteur Google et sélectionnez l'élément souhaité.

  • Écran de confirmation de l'insertion du fichier avec le bouton "Insérer"

    Confirmez votre sélection, puis appuyez sur "Insérer" pour ajouter le fichier à votre application.

Intégrer le sélecteur Google à votre application

Pour permettre aux utilisateurs d'accorder l'accès à des fichiers supplémentaires ou de sélectionner des fichiers à utiliser dans le flux de votre application, procédez comme suit :

  1. Demandez l'accès à l'habilitation drive.file pour ouvrir la page d'accès OAuth 2.0 dans un nouvel onglet du navigateur en suivant ces instructions : Utiliser OAuth 2.0 pour accéder aux API Google. Pour en savoir plus sur les habilitations, consultez Choisir les habilitations de l'API Google Drive scopes.

    Notez que seule l'habilitation drive.file est autorisée pour ces applications et qu'elle ne peut pas être combinée avec une autre habilitation.

  2. L'URL du nouvel onglet du navigateur accepte tous les paramètres de chaîne de requête OAuth standards.

    Vous devez ajouter les paramètres d'URL prompt et trigger_onepick à votre requête d'URL d'autorisation OAuth 2.0. Vous pouvez également personnaliser le sélecteur Google avec plusieurs autres paramètres :

    Paramètre Description État
    prompt=consent Demande d'accès aux fichiers. Obligatoire
    trigger_onepick=true Active le sélecteur Google. Obligatoire
    allow_multiple=true Si la valeur est "true", permet à l'utilisateur de sélectionner plusieurs fichiers. Facultatif
    mimetypes=MIMETYPES Liste de types MIME séparés par une virgule pour filtrer les résultats de recherche. Si ce paramètre n'est pas défini, les fichiers de tous les types MIME s'affichent dans la vue. Facultatif
    file_ids=FILE_IDS Liste d'ID de fichiers séparés par une virgule pour filtrer les résultats de recherche. Si ce paramètre n'est pas défini, tous les fichiers s'affichent dans la vue. Facultatif
    allow_folder_selection=true Si la valeur est "true", permet également à l'utilisateur de sélectionner des dossiers. Facultatif

    L'exemple suivant montre une requête d'URL d'autorisation 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
    

    Remplacez les éléments suivants :

    • CLIENT_ID : ID client de votre application

    • REDIRECT_URI: emplacement où le serveur d'autorisation redirige le navigateur de l'utilisateur une fois l'authentification réussie. Exemple : https://www.cymbalgroup.com/oauth2callback.

      Sélectionnez un redirect_uri qui fonctionne avec votre type d'application et votre configuration OAuth. Le sélecteur Google n'impose aucune restriction supplémentaire.

  3. Une fois que l'utilisateur a accordé l'accès et sélectionné les fichiers concernés, OAuth redirige vers le redirect_uri spécifié dans la requête, avec les paramètres d'URL suivants ajoutés :

    • picked_file_ids: si l'utilisateur a accordé l'accès et sélectionné des fichiers, liste d'ID de fichiers sélectionnés séparés par une virgule.

    • code : jeton d'accès ou code d'accès en fonction du response_type paramètre défini dans la requête. Ce paramètre inclut un nouveau code d'autorisation.

    • scope : habilitation(s) incluse(s) dans la requête.

    • error: si l'utilisateur a annulé la requête dans le flux de consentement, une erreur s'affiche.

    L'exemple suivant montre une réponse d'URL d'autorisation OAuth 2.0 :

    https://REDIRECT_URI?picked_file_ids=PICKED_FILE_IDS&code=CODE&scope=SCOPES
    
  4. Les applications doivent échanger le code d'autorisation de l'étape 3 contre un nouveau jeton OAuth 2.0. Pour en savoir plus, consultez Échanger un code d'autorisation contre des jetons d'actualisation et d'accès tokens.

  5. Les applications peuvent ensuite utiliser les ID de fichiers du paramètre d'URL de l'étape 3 et le jeton OAuth 2.0 obtenu à l'étape 4 pour appeler l'API Drive. Pour en savoir plus, consultez la présentation de l'API Google Drive.

Utiliser le sélecteur Google avec des applications Android

Vous pouvez également utiliser le sélecteur Google dans vos applications mobiles Android.

Autoriser les identifiants pour une application mobile

Pour utiliser le sélecteur Google dans votre application Android, vous devez autoriser les utilisateurs à l'aide d'OAuth 2.0, comme pour les applications de bureau. Pour en savoir plus sur l'authentification Android, consultez Autoriser l'accès aux données utilisateur Google data.

Pour afficher le sélecteur Google lors de l'autorisation, créez un AuthorizationRequest et utilisez le paramètre de ressource PICKER_OAUTH_TRIGGER sur l'objet AuthorizationRequest.ResourceParameter.

Lors de la création de la AuthorizationRequest :

  • Utilisez l'habilitation drive.file.

  • Appelez setOptOutIncludingGrantedScopes sur true pour vous assurer que le jeton renvoyé ne concerne que l'habilitation drive.file et non les habilitations précédemment accordées.

  • Définissez le AuthorizationRequest.Prompt champ sur CONSENT pour demander le consentement de l'utilisateur, même s'il a déjà été accordé avant.

  • Vous pouvez également utiliser l'opérateur bitmap "OR" (|) pour définir le champ AuthorizationRequest.Prompt sur SELECT_ACCOUNT afin de permettre à l'utilisateur de sélectionner un compte avant d'afficher l'invite de consentement.

Appeler le sélecteur Google

Comme pour les applications de bureau, vous pouvez personnaliser le sélecteur Google avec plusieurs paramètres facultatifs :

  • PICKER_ALLOW_MULTIPLE : permet aux utilisateurs de sélectionner plusieurs fichiers.
  • PICKER_MIMETYPES : accepte une liste de types MIME séparés par une virgule pour filtrer les résultats de recherche. Si ce paramètre n'est pas défini, les fichiers de tous les types MIME s'affichent dans la vue.
  • PICKER_FILE_IDS: accepte une liste d'ID de fichiers séparés par une virgule pour filtrer les résultats de recherche. Si ce paramètre n'est pas défini, tous les fichiers s'affichent dans la vue.
  • PICKER_ALLOW_FOLDER_SELECTION : permet également aux utilisateurs de sélectionner des dossiers.

Pour en savoir plus sur les paramètres facultatifs dans les applications de bureau, consultez Afficher le sélecteur Google.

Une fois que l'utilisateur a accordé l'accès et sélectionné les fichiers concernés, l' getTokenResponseParams objet de la AuthorizationResult ressource est renvoyé. Si l'utilisateur a accordé l'accès, cet objet contient la valeur picked_file_ids, qui est une liste d'ID de fichiers sélectionnés séparés par une virgule.