Cuando un usuario selecciona un archivo y hace clic en la opción "Abrir con" de la IU de Drive elemento de menú, redireccionamientos de Drive al usuario a la URL abierta de esa app que se define en la sección Cómo configurar una IU de Drive con una integración continua.
Si marcaste el botón "Importación" cuando configuraste una IU de Drive de la aplicación, el usuario puede seleccionar una combinación Archivos de Google Workspace para abrir. Cuando configuras una IU de Drive , los archivos específicos de la app se definen en la sección "Tipos de MIME predeterminados" y "Extensiones de archivo predeterminadas" mientras que Google Workspace los archivos se definen en la sección "Tipos de MIME secundarios" y "Extensiones de archivo secundarias" .
Para cada archivo que el usuario quiere abrir, Drive verifica el MIME. tipos en función de los tipos de MIME predeterminados y secundarios definidos:
Para los tipos de MIME definidos en la sección "Tipos de MIME predeterminados" , el ID del archivo es pasan a tu app. Para obtener información sobre cómo manejar archivos específicos de la aplicación, Consulta Maneja una URL abierta para documentos específicos de la app.
Para los tipos de MIME definidos en la sección "Tipos de MIME secundarios" La IU de Drive muestra un diálogo en el que se le pregunta al usuario 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 “MIME secundario tipos" sugiere que tu app admite texto/sin formato o aplicación/pdf, el La IU de Drive le pregunta al usuario si quiere convertir a texto sin formato o PDF.
Si necesitas información para administrar Google Workspace, consulta Administra una URL abierta en documentos de Google Workspace. Para obtener una lista de documentos de Google Workspace y formatos de conversión de tipos de MIME, consulta Exporta tipos de MIME para Google Workspace documentos.
Controla una URL abierta para documentos específicos de la app
Como se mencionó en Configura una IU de Drive
integración,
tu app recibe variables de plantilla con información para que la abra.
el archivo. Tu app recibe un conjunto predeterminado de variables de plantilla
dentro de un parámetro state
. El
La información predeterminada de state
para una URL abierta específica de una 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: Un diccionario JSON de los IDs de archivo asignados a sus respectivas claves de recursos.
open
: Es la acción que se realiza. El valor esopen
cuando se usa un URL.- USER_ID: Es el ID de perfil que identifica de forma inequívoca al usuario.
Tu app debe tomar medidas respecto de esta solicitud; para ello, sigue estos pasos:
- Verifica que el campo
action
tenga el valoropen
y que el campoids
sea presente. - Usa el valor
userId
para crear una sesión nueva para el usuario. Para ver más información sobre los usuarios que iniciaron sesión, consulta Usuarios y nuevos eventos. - Usa el método
files.get
para verificarlo. permisos, recuperar metadatos de archivos y descargar el contenido del archivo usando los valores deID
. - Si se configuró
resourceKeys
en la solicitud, establece el Encabezado de la solicitudX-Goog-Drive-Resource-Keys
. Para obtener más información claves de recursos, consulta Cómo acceder a archivos compartidos por vínculos con claves.
El parámetro state
está codificado en formato URL, por lo que tu app debe controlar el escape
caracteres y analizarlos como JSON.
Controla una URL abierta para documentos de Google Workspace
Como se mencionó en Configura una IU de Drive
integrada, la 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:
{
"exportIds": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
En esta salida, se incluyen los siguientes valores:
- EXPORT_ID: Una lista separada por comas de los IDs de archivo que se exportado (solo se usa al abrir los documentos integrados de Google).
- RESOURCE_KEYS: Un diccionario JSON de los IDs de archivo asignados a sus respectivas claves de recursos.
open
: Es la acción que se realiza. El valor esopen
cuando se usa un URL.- USER_ID: Es el ID de perfil que identifica al usuario.
Tu app debe tomar medidas respecto de esta solicitud; para ello, sigue estos pasos:
Detecta los
open
a fin de verificar que se trate de una solicitud para abrir un archivo. El valor en el campostate
y la presencia del campoexportIds
.Usa el método
files.get
para verificarlo. buscar metadatos de archivos y determinar el tipo de MIME mediante elEXPORT_ID
.Convierte el contenido del archivo con el
files.export
. Lo siguiente de código de ejemplo muestra cómo exportar un documento de Google Workspace al el 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 claves de recursos, consulta Cómo acceder a archivos compartidos por vínculos con claves.Java
Python
Node.js
PHP
Mostrar los archivos convertidos como de solo lectura o presentar un diálogo que permita al usuario guarda el archivo como el tipo de archivo nuevo.
El parámetro state
está codificado en formato URL, por lo que tu app debe controlar el escape
caracteres y analizarlos como JSON.
Usuarios y nuevos eventos
Las apps de Drive deben tratar todo lo que se abre con eventos como posibles
y accesos. Es posible que algunos usuarios tengan varias cuentas, por lo que el ID de usuario de state
no coincida con la sesión actual. Si el ID de usuario de state
no coincide con la sesión actual, finaliza la sesión actual de tu
y acceder como el usuario solicitado.
Temas relacionados
Además de abrir una aplicación desde la IU de Google Drive, las aplicaciones pueden Muestra un selector de archivos para seleccionar contenido dentro de una app. Para ver más consulta el Selector de Google.