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

Ce document explique comment intégrer le sélecteur Google à vos applications pour ordinateur et mobile à 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 propose plusieurs fonctionnalités :

  • Une interface utilisateur Google Drive similaire.
  • Plusieurs vues montrant des aperçus et des miniatures de fichiers Drive.
  • Des vues préfiltrées qui n'affichent que certains types de fichiers (PDF ou images, par exemple) ou certains dossiers.
  • Redirection vers le sélecteur Google dans un nouvel onglet du navigateur par défaut de l'utilisateur.

Notez que, bien que vous puissiez 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 les fichiers, vous devez utiliser l'API Google Drive ou l'interface utilisateur Drive.

Prérequis

Les applications utilisant le sélecteur Google doivent respecter toutes les Conditions d'utilisation existantes. Plus important encore, vous devez vous identifier correctement dans vos demandes.

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 API, accédez à Menu  > Plate-forme Google Auth > 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 n'apparaît que dans la console Google APIs.
  5. Cliquez sur Créer.

    Les identifiants que vous venez de créer s'affichent sous "ID client OAuth 2.0".

Pour que les applications obtiennent l'autorisation d'accéder aux fichiers qui leur ont été précédemment accordés, vous devez procéder comme suit :

  1. Vous devez obtenir un jeton OAuth 2.0 avec le champ d'application drive.file, drive ou drive.readonly en suivant les instructions de la page Utiliser OAuth 2.0 pour accéder aux API Google. Pour en savoir plus sur les champs d'application, consultez Choisir les champs d'application de l'API Google Drive.

  2. Transmettez le jeton OAuth 2.0 à l'API Drive pour lire et modifier les fichiers auxquels l'utilisateur a précédemment 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.

Pour que l'API Google Picker s'ouvre sur une page client, utilisez plutôt l'API Google Picker pour les applications Web. Pour en savoir plus, consultez Intégrer le sélecteur Google à des applications Web.

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 de 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.

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

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

    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 Activez 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 cette option n'est pas définie, 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 elle n'est pas définie, tous les fichiers sont affichés 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 : URL vers laquelle le serveur d'autorisation redirige le navigateur de l'utilisateur après une 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 : liste d'ID de fichiers sélectionnés, séparés par une virgule, si l'utilisateur a accordé l'accès et choisi des fichiers.

    • code : jeton d'accès ou code d'accès en fonction du paramètre response_type 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 demande 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.

  5. Les applications peuvent ensuite utiliser les ID de fichier 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 pour ordinateur. Pour en savoir plus sur l'authentification Android, consultez Autoriser l'accès aux données utilisateur Google.

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 du AuthorizationRequest :

  • Utilisez le champ d'application drive.file.

  • Appelez setOptOutIncludingGrantedScopes pour true afin de 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 champ AuthorizationRequest.Prompt sur CONSENT pour inviter l'utilisateur à donner son consentement même s'il l'a déjà accordé.

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

Appeler le sélecteur Google

Comme pour les applications pour ordinateur, vous pouvez personnaliser le sélecteur Google à l'aide de 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 elle n'est pas définie, 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 elle n'est pas définie, tous les fichiers sont affichés 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 pour ordinateur, consultez Afficher le sélecteur Google.

Une fois que l'utilisateur a accordé l'accès et sélectionné les fichiers concernés, l'objet getTokenResponseParams de la ressource AuthorizationResult 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 des virgules.