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.
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 :
- Dans la console Google API, accédez à Menu > Plate-forme Google Auth > Clients.
- Cliquez sur Créer un client.
- Cliquez sur Type d'application > Application de bureau.
- Dans le champ Nom, saisissez un nom pour l'identifiant. Ce nom n'apparaît que dans la console Google APIs.
- 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 :
Vous devez obtenir un jeton OAuth 2.0 avec le champ d'application
drive.file,driveoudrive.readonlyen 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.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 :
Demandez l'accès au champ d'application
drive.filepour 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.fileest autorisé pour ces applications et qu'il ne peut pas être combiné avec un autre champ d'application.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
promptettrigger_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=consentDemande d'accès aux fichiers. Obligatoire trigger_onepick=trueActivez le sélecteur Google. Obligatoire allow_multiple=trueSi la valeur est "true", l'utilisateur peut sélectionner plusieurs fichiers. Facultatif mimetypes=MIMETYPESListe 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_IDSListe 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=trueSi 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=trueRemplacez 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_urispécifié doit être une URL HTTPS publique. Si vous souhaitez utiliser un protocole personnalisé ou une URL localhost pour votreredirect_uri, vous devez utiliser une URL HTTPS publique qui redirige ensuite vers le protocole personnalisé ou l'URL localhost.
Une fois que l'utilisateur a accordé l'accès et sélectionné les fichiers concernés, OAuth redirige vers le
redirect_urispé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ètreresponse_typedé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=SCOPESLes 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.
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
setOptOutIncludingGrantedScopespourtrueafin de vous assurer que le jeton renvoyé ne concerne que le champ d'applicationdrive.fileet non les champs d'application précédemment accordés.Définissez le champ
AuthorizationRequest.PromptsurCONSENTpour 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 champAuthorizationRequest.PromptsurSELECT_ACCOUNTafin 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.