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

Ce document explique comment intégrer le sélecteur Google dans 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 (PDF ou images, par exemple) 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 le sélecteur Google vous permet de sélectionner et d'importer des fichiers, il n'autorise pas les utilisateurs à organiser, déplacer ni copier des fichiers d'un dossier à un autre. Pour gérer des fichiers, vous devez utiliser l'API Google Drive ou l'interface utilisateur de 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 APIs, 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 > Application de bureau.
  4. Dans le champ Nom, saisissez un nom pour l'identifiant. Ce nom ne s'affiche que dans la console API Google.
  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 ont déjà été autorisées, procédez comme suit :

  1. Vous devez obtenir un jeton OAuth 2.0 avec le champ d'application 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 champs d'application, 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 la section 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 la section 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 de connexion et d'autorisations Google

    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 au champ d'application 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 champs d'application, consultez Choisir les habilitations de l'API Google Drive scopes.

    Notez que seul le champ d'application drive.file est autorisé pour ces applications et qu'il ne peut être combiné à aucun autre champ d'application.

  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 Activer le sélecteur Google. Obligatoire
    allow_multiple=true Si la valeur est "true", l'utilisateur peut 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", l'utilisateur peut également 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 vers lequel le serveur d'autorisation redirige le navigateur de l'utilisateur une fois l'authentification réussie. Exemple : https://www.cymbalgroup.com/oauth2callback.

      Le redirect_uri spécifié doit être une URL HTTPS publique. Si vous souhaitez utiliser un protocole personnalisé ou une URL localhost pour votre redirect_uri, vous devez utiliser une URL HTTPS publique qui redirige ensuite vers le protocole personnalisé ou l'URL localhost.

  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 : champ(s) d'application inclus 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 le champ d'application drive.file.

  • Appelez setOptOutIncludingGrantedScopes sur true pour vous assurer que le jeton renvoyé ne concerne que le champ d'application drive.file et non les champs d'application précédemment accordés.

  • 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 aux utilisateurs de sélectionner également 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.