Cuando un usuario selecciona un archivo y hace clic en el elemento de menú "Abrir con" de la IU de Drive, Drive redirecciona al usuario a la URL abierta de esa app definida en Cómo configurar una integración de la IU de Drive.
Si marcaste la casilla “Importación” cuando configuraste una integración de la IU de Drive, el usuario puede seleccionar una combinación de archivos específicos de la app y de Google Workspace para abrir. Cuando configuras una integración de la IU de Drive, los archivos específicos de la app se definen en los campos “Tipos de MIME predeterminados” y “Extensiones de archivo predeterminadas”, mientras que los archivos de Google Workspace se definen en los campos “Tipos de MIME secundarios” y “Extensiones de archivos secundarias”.
Para cada archivo que el usuario desea abrir, Drive compara los tipos de MIME con los tipos de MIME predeterminados y secundarios definidos:
Para los tipos de MIME definidos en el campo "Tipos de MIME predeterminados", el ID del archivo se pasa a tu app. Para obtener información sobre cómo controlar archivos específicos de la app, consulta Cómo controlar una URL abierta para documentos específicos de la app.
Para los tipos de MIME definidos en el campo “Tipos de MIME secundarios”, la IU de Drive muestra un diálogo en el que se le pregunta al usuario a qué tipo de archivo convertir el archivo de Google Workspace. Por ejemplo, si seleccionas un archivo de Documentos de Google en la IU de Drive y el campo "Tipos de MIME secundarios" sugiere que tu app admite texto/sin formato o aplicación/pdf, la IU de Drive le preguntará al usuario si desea convertirlo a texto sin formato o a PDF.
Para obtener información sobre cómo administrar archivos de Google Workspace, consulta Administra una URL abierta en documentos de Google Workspace. Si deseas obtener una lista de documentos de Google Workspace y formatos de conversión de tipos de MIME, consulta Exporta tipos de MIME para documentos de Google Workspace.
Controla una URL abierta para documentos específicos de la app
Como se mencionó en Cómo configurar una integración de la IU de Drive, tu app recibe variables de plantilla con información para que abra el archivo. Tu app recibe un conjunto predeterminado de variables de plantilla dentro de un parámetro state
. La información predeterminada de state
para una URL abierta específica de la app es la siguiente:
{
"ids": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
En esta salida, se incluyen los siguientes valores:
- ID: Es el ID de la carpeta superior.
- RESOURCE_KEYS: Es un diccionario JSON de los ID de archivo asignados a sus respectivas claves de recursos.
open
: Es la acción que se realiza. El valor esopen
cuando se usa una URL abierta.- USER_ID: El ID de perfil que identifica de forma única al usuario.
Tu app debe seguir estos pasos para responder a esta solicitud:
- Verifica que el campo
action
tenga un valor deopen
y que el campoids
esté presente. - Usa el valor
userId
a fin de crear una sesión nueva para el usuario. Para obtener más información sobre los usuarios que accedieron, consulta Usuarios y eventos nuevos. - Usa el método
files.get
para verificar los permisos, recuperar metadatos del archivo y descargar el contenido del archivo con los valoresID
. - Si se configuró
resourceKeys
en la solicitud, establece el encabezado de la solicitudX-Goog-Drive-Resource-Keys
. Para obtener más información sobre las claves de recursos, consulta Cómo acceder a archivos compartidos mediante vínculos mediante claves de recurso.
El parámetro state
está codificado en formato URL, por lo que tu app debe controlar los caracteres de escape y analizarlo como JSON.
Controla una URL abierta para documentos de Google Workspace
Como se mencionó en Cómo configurar una integración de la IU de Drive, tu app recibe un conjunto predeterminado de variables de plantilla dentro de un parámetro state
. La información predeterminada de state
para una URL abierta de Google Workspace es la siguiente:
{
"exportIds": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
En esta salida, se incluyen los siguientes valores:
- EXPORT_ID: Es una lista separada por comas de los IDs de los archivos que se exportan (solo se usa cuando se abren documentos integrados de Google).
- RESOURCE_KEYS: Es un diccionario JSON de los ID de archivo asignados a sus respectivas claves de recursos.
open
: Es la acción que se realiza. El valor esopen
cuando se usa una URL abierta.- USER_ID: Es el ID de perfil que identifica al usuario.
Tu app debe seguir estos pasos para responder a esta solicitud:
Verifica que se trate de una solicitud para abrir un archivo mediante la detección del valor
open
en el campostate
y la presencia del campoexportIds
.Usa el método
files.get
para verificar los permisos, recuperar metadatos del archivo y determinar el tipo de MIME mediante los valoresEXPORT_ID
.Convierte el contenido del archivo con el método
files.export
. En la siguiente muestra de código, se indica cómo exportar un documento de Google Workspace al tipo de MIME solicitado.Si se configuró
resourceKey
en la solicitud, establece el encabezado de la solicitudX-Goog-Drive-Resource-Keys
. Para obtener más información sobre las claves de recursos, consulta Cómo acceder a archivos compartidos mediante vínculos mediante claves de recurso.Java
Python
Node.js
PHP
Muestra los archivos convertidos como de solo lectura o presenta un diálogo que permita al usuario guardar el archivo como el nuevo tipo de archivo.
El parámetro state
está codificado en formato URL, por lo que tu app debe controlar los caracteres de escape y analizarlo como JSON.
Usuarios y eventos nuevos
Las apps de Drive deben tratar todos los eventos "abiertos con" como accesos potenciales. Es posible que algunos usuarios tengan varias cuentas, por lo que es posible que el ID de usuario del parámetro state
no coincida con la sesión actual. Si el ID de usuario del parámetro state
no coincide con la sesión actual, finaliza la sesión actual de la app y accede como el usuario solicitado.
Temas relacionados
Además de abrir una aplicación desde la IU de Google Drive, las aplicaciones pueden mostrar un selector de archivos para seleccionar contenido dentro de una app. Si deseas obtener más información, consulta el Selector de Google.