Lorsqu'un utilisateur sélectionne un fichier et clique sur l'élément de menu "Ouvrir avec" de l'interface utilisateur Drive, Drive le redirige vers l'URL d'ouverture de cette application définie dans Configurer une intégration de l'UI Drive.
Si vous avez coché la case "Importation" lorsque vous avez configuré une intégration de l'UI Drive, l'utilisateur peut sélectionner une combinaison de fichiers Google Workspace et spécifiques à l'application à ouvrir. Lorsque vous configurez une intégration de l'UI Drive, les fichiers spécifiques à l'application sont définis dans les champs "Types MIME par défaut" et "Extensions de fichier par défaut", tandis que les fichiers Google Workspace sont définis dans les champs "Types MIME secondaires" et "Extensions de fichier secondaires".
Pour chaque fichier que l'utilisateur souhaite ouvrir, Drive compare les types MIME aux types MIME par défaut et secondaires que vous avez définis:
Pour les types MIME définis dans le champ "Types MIME par défaut", l'ID de fichier est transmis à votre application. Pour savoir comment gérer les fichiers spécifiques à l'application, consultez Gérer une URL d'ouverture pour les documents spécifiques à l'application.
Pour les types MIME définis dans le champ "Types MIME secondaires", l'interface utilisateur de Drive affiche une boîte de dialogue demandant à l'utilisateur dans quel type de fichier convertir le fichier Google Workspace. Par exemple, si vous sélectionnez un fichier Google Docs dans l'interface utilisateur de Drive et que le champ "Types MIME secondaires" suggère que votre application est compatible avec text/plain ou application/pdf, l'interface utilisateur de Drive demande à l'utilisateur s'il souhaite convertir le fichier au format texte brut ou PDF.
Pour savoir comment gérer les fichiers Google Workspace, consultez Gérer une URL ouverte pour les documents Google Workspace. Pour obtenir la liste des documents Google Workspace et des formats de conversion de type MIME, consultez Exporter des types MIME pour les documents Google Workspace.
Gérer une URL ouverte pour les documents spécifiques à une application
Comme indiqué dans la section Configurer une intégration de l'UI Drive, votre application reçoit des variables de modèle avec des informations permettant à votre application d'ouvrir le fichier. Votre application reçoit un ensemble par défaut de variables de modèle dans un paramètre state
. Les informations state
par défaut pour une URL d'ouverture spécifique à une application sont les suivantes:
{
"ids": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
Ce résultat inclut les valeurs suivantes :
- ID: ID du dossier parent.
- RESOURCE_KEYS: dictionnaire JSON des ID de fichier mappés à leurs clés de ressources respectives.
open
: action effectuée. La valeur estopen
lorsque vous utilisez une URL ouverte.- USER_ID: ID de profil qui identifie de manière unique l'utilisateur.
Votre application doit répondre à cette requête en procédant comme suit:
- Vérifiez que le champ
action
a la valeuropen
et que le champids
est présent. - Utilisez la valeur
userId
pour créer une session pour l'utilisateur. Pour en savoir plus sur les utilisateurs connectés, consultez Utilisateurs et nouveaux événements. - Utilisez la méthode
files.get
pour vérifier les autorisations, extraire les métadonnées de fichier et télécharger le contenu du fichier à l'aide des valeursID
. - Si
resourceKeys
a été défini sur la requête, définissez l'en-tête de requêteX-Goog-Drive-Resource-Keys
. Pour en savoir plus sur les clés de ressources, consultez la section Accéder aux fichiers partagés par lien à l'aide de clés de ressources.
Le paramètre state
est encodé au format URL. Votre application doit donc gérer les caractères d'échappement et l'analyser au format JSON.
Gérer une URL ouverte pour les documents Google Workspace
Comme indiqué dans Configurer une intégration de l'interface utilisateur Drive, votre application reçoit un ensemble de variables de modèle par défaut dans un paramètre state
. Les informations state
par défaut pour une URL à ouvrir dans Google Workspace sont les suivantes:
{
"exportIds": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
Ce résultat inclut les valeurs suivantes :
- EXPORT_ID: liste d'ID de fichiers exportés, séparés par une virgule (utilisée uniquement lors de l'ouverture de documents Google intégrés).
- RESOURCE_KEYS: dictionnaire JSON d'ID de fichiers mappés avec leurs clés de ressource respectives.
open
: action en cours d'exécution. La valeur estopen
lorsque vous utilisez une URL ouverte.- USER_ID: ID de profil qui identifie l'utilisateur.
Votre application doit répondre à cette demande en procédant comme suit:
Vérifiez qu'il s'agit d'une requête d'ouverture de fichier en détectant à la fois la valeur
open
dans le champstate
et la présence du champexportIds
.Utilisez la méthode
files.get
pour vérifier les autorisations, extraire les métadonnées de fichier et déterminer le type MIME à l'aide des valeursEXPORT_ID
.Convertissez le contenu du fichier à l'aide de la méthode
files.export
. L'exemple de code suivant montre comment exporter un document Google Workspace vers le type MIME demandé.Si
resourceKey
a été défini sur la requête, définissez l'en-tête de requêteX-Goog-Drive-Resource-Keys
. Pour en savoir plus sur les clés de ressources, consultez la section Accéder aux fichiers partagés par lien à l'aide de clés de ressources.Java
Python
Node.js
PHP
Affichez les fichiers convertis en lecture seule ou présentez une boîte de dialogue permettant à l'utilisateur d'enregistrer le fichier en tant que nouveau type de fichier.
Le paramètre state
est encodé au format URL. Votre application doit donc gérer les caractères d'échappement et l'analyser au format JSON.
Utilisateurs et nouveaux événements
Les applications Drive doivent traiter tous les événements "Ouvrir avec" comme des connexions potentielles. Certains utilisateurs peuvent avoir plusieurs comptes. Il est donc possible que l'ID utilisateur du paramètre state
ne corresponde pas à la session en cours. Si l'ID utilisateur du paramètre state
ne correspond pas à la session en cours, mettez fin à la session en cours pour votre application et connectez-vous en tant qu'utilisateur demandé.
Articles associés
En plus d'ouvrir une application à partir de l'interface utilisateur Google Drive, les applications peuvent afficher un sélecteur de fichier pour sélectionner du contenu au sein d'une application. Pour en savoir plus, consultez le sélecteur Google.