Quando um usuário seleciona um arquivo e clica no item de menu "Abrir com" da interface do Drive, o Drive redireciona o usuário para o URL de abertura do app definido em Configurar uma integração da interface do Drive.
Se você marcou a caixa "Importar" ao configurar uma integração da interface do Drive, o usuário poderá selecionar uma combinação de arquivos específicos do app e do Google Workspace para abrir. Ao configurar uma integração da interface do Drive, os arquivos específicos do app são definidos nos campos "Tipos MIME padrão" e "Extensões de arquivo padrão", enquanto os arquivos do Google Workspace são definidos nos campos "Tipos MIME secundários" e "Extensões de arquivo secundárias".
Para cada arquivo que o usuário quer abrir, o Drive verifica os tipos MIME em relação aos tipos MIME padrão e secundários definidos:
Para os tipos MIME definidos no campo "Tipos MIME padrão", o ID do arquivo é transmitido ao app. Para informações sobre como processar arquivos específicos do app, consulte Processar um URL de abertura para documentos específicos do app.
Para os tipos MIME definidos no campo "Tipos MIME secundários", a interface do Drive mostra uma caixa de diálogo perguntando ao usuário para qual tipo de arquivo converter o arquivo do Google Workspace. Por exemplo, se você selecionar um arquivo do Google Docs na interface do Drive e o campo "Tipos MIME secundários" sugerir que o app oferece suporte a text/plain ou application/pdf, a interface do Drive vai perguntar ao usuário se ele quer converter para texto simples ou PDF.
Para informações sobre como processar arquivos do Google Workspace, consulte Processar um URL de abertura para documentos do Google Workspace. Para uma lista de documentos do Google Workspace e formatos de conversão de tipo MIME, consulte Exportar tipos MIME para documentos do Google Workspace documentos.
Processar um URL de abertura para documentos específicos do app
Conforme mencionado em Configurar uma integração da interface do Drive,
o app recebe variáveis de modelo com informações para abrir
o arquivo. O app recebe um conjunto padrão de variáveis de modelo
em um state parâmetro. As informações state padrão para um URL de abertura específico do app são:
{
"ids": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
Esta saída inclui os seguintes valores:
- ID: o ID da pasta mãe.
- RESOURCE_KEYS: um dicionário JSON de IDs de arquivos mapeados para as respectivas chaves de recursos.
open: a ação que está sendo realizada. O valor éopenao usar um URL de abertura.- USER_ID: o ID do perfil que identifica o usuário de maneira exclusiva.
O app precisa agir nessa solicitação seguindo estas etapas:
- Verifique se o campo
actiontem um valor deopene se o campoidsestá presente. - Use o valor
userIdpara criar uma nova sessão para o usuário. Para mais informações sobre usuários conectados, consulte Usuários e novos eventos. - Use o método
files.getpara verificar permissões, buscar metadados de arquivos e fazer o download do conteúdo do arquivo usando os valoresID. - Se
resourceKeysfoi definido na solicitação, defina o cabeçalho da solicitaçãoX-Goog-Drive-Resource-Keys. Para mais informações sobre chaves de recursos, consulte Acessar arquivos compartilhados por link usando chaves de recursos.
O parâmetro state é codificado por URL. Portanto, o app precisa processar os caracteres de escape e analisá-lo como JSON.
Processar um URL de abertura para documentos do Google Workspace
Conforme mencionado em Configurar uma integração da interface do Drive, o app recebe um conjunto padrão de
variáveis de modelo em um parâmetro state. As informações state padrão para um URL de abertura do Google Workspace são:
{
"exportIds": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
Esta saída inclui os seguintes valores:
- EXPORT_ID: uma lista separada por vírgulas de IDs de arquivos que estão sendo exportados. Usado apenas ao abrir arquivos do Google Workspace.
- RESOURCE_KEYS: um dicionário JSON de IDs de arquivos mapeados para as respectivas chaves de recursos.
open: a ação que está sendo realizada. O valor éopenao usar um URL de abertura.- USER_ID: o ID do perfil que identifica o usuário.
O app precisa agir nessa solicitação seguindo estas etapas:
Verifique se é uma solicitação para abrir um arquivo detectando o valor
openno campostatee a presença do campoexportIds.Use o método
files.getpara verificar permissões, buscar metadados de arquivos e determinar o tipo MIME usando osEXPORT_IDvalores.Converta o conteúdo do arquivo usando o
files.exportmétodo. O exemplo de código a seguir mostra como exportar um documento do Google Workspace para o tipo MIME solicitado.Se
resourceKeyfoi definido na solicitação, defina o cabeçalho da solicitaçãoX-Goog-Drive-Resource-Keys. Para mais informações sobre chaves de recursos, consulte Acessar arquivos compartilhados por link usando chaves de recursos.Java
Python
Node.js
PHP
Mostre os arquivos convertidos como somente leitura ou apresente uma caixa de diálogo que permita ao usuário salvar o arquivo como o novo tipo.
O parâmetro state é codificado por URL. Portanto, o app precisa processar os caracteres de escape e analisá-lo como JSON.
Usuários e novos eventos
Os apps do Drive precisam tratar todos os eventos "Abrir com" como possíveis logins. Alguns usuários podem ter várias contas. Portanto, o ID do usuário no parâmetro state pode não corresponder à sessão atual. Se o ID do usuário no parâmetro state não corresponder à sessão atual, encerre a sessão atual do app e faça login como o usuário solicitado.
Temas relacionados
Além de abrir um aplicativo na interface do Google Drive, os aplicativos podem mostrar um seletor de arquivos para selecionar conteúdo de um app. Para mais informações, consulte o Google Picker.