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 de Open 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 abrirlos. 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 archivo secundarias".
Para cada archivo que el usuario quiera abrir, Drive verifica los tipos de MIME en función de los tipos de MIME predeterminados y secundarios que definiste:
En el caso de los tipos de MIME definidos en el campo "Tipos de MIME predeterminados", el ID de 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.
En el caso de 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 desea 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 pregunta al usuario si quiere realizar la conversión a texto sin formato o PDF.
Para obtener información sobre cómo controlar archivos de Google Workspace, consulta Cómo controlar una URL abierta para documentos de Google Workspace. Para obtener una lista de los documentos de Google Workspace y los 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 IDs de archivos asignados a sus respectivas claves de recursos.
open
: Es la acción que se está realizando. El valor esopen
cuando se usa una URL abierta.- USER_ID: Es el ID de perfil que identifica de forma única al usuario.
Para que tu app realice acciones en función de esta solicitud, sigue estos pasos:
- Verifica que el campo
action
tenga un valor deopen
y que el campoids
esté presente. - Usa el valor
userId
para 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, configura 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 con vínculos usando claves de recursos.
El parámetro state
está codificado en URL, por lo que tu app debe controlar los caracteres de escape y analizarlo como JSON.
Cómo controlar 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 exportarán (se usa solo cuando se abren documentos de Google integrados).
- RESOURCE_KEYS: Es un diccionario JSON de IDs de archivos asignados a sus respectivas claves de recursos.
open
: Es la acción que se está realizando. El valor esopen
cuando se usa una URL abierta.- USER_ID: Es el ID de perfil que identifica al usuario.
Para responder a esta solicitud, la app debe seguir estos pasos:
Para verificar que se trata de una solicitud para abrir un archivo, detecta el valor
open
en el campostate
y la presencia del campoexportIds
.Usa el método
files.get
para verificar los permisos, recuperar los metadatos del archivo y determinar el tipo de MIME con los valoresEXPORT_ID
.Convierte el contenido del archivo con el método
files.export
. En la siguiente muestra de código, se muestra cómo exportar un documento de Google Workspace al tipo MIME solicitado.Si se configuró
resourceKey
en la solicitud, configura el encabezado de solicitudX-Goog-Drive-Resource-Keys
. Para obtener más información sobre las claves de recursos, consulta Cómo acceder a archivos compartidos con vínculos usando claves de recursos.Java
Python
Node.js
PHP
Muestra los archivos convertidos como de solo lectura o presenta un diálogo que le permita al usuario guardar el archivo como el nuevo tipo de archivo.
El parámetro state
está codificado en 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 posibles accesos. Es posible que algunos usuarios tengan varias cuentas, por lo que el ID de usuario en el parámetro state
podría no coincidir 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 desde una app. Para obtener más información, consulta el Selector de Google.