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 "Importação" ao configurar uma integração da interface do Drive, o usuário pode selecionar uma combinação de arquivos específicos do app e do Google Workspace para abrir. Quando você configura uma integração de 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 contra os tipos MIME padrão e secundários definidos:
Para tipos MIME definidos no campo "Tipos MIME padrão", o ID do arquivo é transmitido ao app. Para saber mais sobre como processar arquivos específicos do app, consulte Processar um URL aberto para documentos específicos do app.
Para tipos MIME definidos no campo "Tipos MIME secundários", a interface do Drive mostra uma caixa de diálogo perguntando ao usuário em qual tipo de arquivo converter o arquivo do Google Workspace. Por exemplo, se você selecionar um arquivo do Documentos Google na interface do Drive e o campo "Tipos MIME secundários" sugerir que seu 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 saber como processar arquivos do Google Workspace, consulte Processar um URL aberto para documentos do Google Workspace. Para conferir uma lista de documentos do Google Workspace e formatos de conversão de tipo MIME, consulte Exportar tipos MIME para documentos do Google Workspace.
Processar um URL aberto para documentos específicos do app
Como mencionado em Configurar uma integração de interface
do Drive,
seu 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 parâmetro state
. As
informações padrão de state
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 pai.
- RESOURCE_KEYS: um dicionário JSON de IDs de arquivo mapeados para as respectivas chaves de recurso.
open
: a ação que está sendo realizada. O valor éopen
ao usar um URL aberto.- USER_ID: o ID do perfil que identifica exclusivamente o usuário.
O app precisa responder a essa solicitação seguindo estas etapas:
- Verifique se o campo
action
tem o valoropen
e se o campoids
está presente. - Use o valor
userId
para 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.get
para verificar permissões, buscar metadados de arquivos e fazer o download do conteúdo do arquivo usando os valoresID
. - Se
resourceKeys
foi definido na solicitação, defina o cabeçalho de solicitaçãoX-Goog-Drive-Resource-Keys
. Para mais informações sobre chaves de recursos, consulte Acessar arquivos compartilhados por link usando chaves de recurso.
O parâmetro state
é codificado para uso em URL. Portanto, o app precisa processar os caracteres de escape e analisá-los como JSON.
Processar um URL aberto para documentos do Google Workspace
Como mencionado em Configurar uma integração de interface do Drive, seu app recebe um conjunto padrão de variáveis de modelo em um parâmetro state
. As informações padrão de state
para um URL aberto 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 (usada apenas ao abrir documentos integrados do Google).
- RESOURCE_KEYS: um dicionário JSON de IDs de arquivo mapeados para as respectivas chaves de recurso.
open
: a ação que está sendo realizada. Ao usar um URL aberto, o valor éopen
.- USER_ID: o ID do perfil que identifica o usuário.
O app precisa responder a essa solicitação seguindo estas etapas:
Verifique se esta é uma solicitação para abrir um arquivo detectando o valor
open
no campostate
e a presença do campoexportIds
.Use o método
files.get
para verificar permissões, buscar metadados de arquivos e determinar o tipo MIME usando os valoresEXPORT_ID
.Converta o conteúdo do arquivo usando o método
files.export
. O exemplo de código a seguir mostra como exportar um documento do Google Workspace para o tipo MIME solicitado.Se
resourceKey
foi definido na solicitação, defina o cabeçalho de solicitaçãoX-Goog-Drive-Resource-Keys
. Para mais informações sobre chaves de recursos, consulte Acessar arquivos compartilhados por link usando chaves de recurso.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 em URL. Portanto, seu app precisa processar os caracteres de
escape e analisar como JSON.
Usuários e novos eventos
Os apps do Drive precisam tratar todos os eventos "abertos com" como possíveis
logins. Alguns usuários podem ter várias contas. Por isso, o ID no parâmetro state
pode não corresponder à sessão atual. Se o ID 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 em um app. Para mais informações, consulte o Google Picker.