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ê tiver marcado a caixa "Importação" ao configurar uma integração com a interface do Drive, o usuário vai poder selecionar uma combinação de arquivos específicos do app e do Google Workspace para abrir. Quando você configura 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 arquivos secundários".
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 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 os 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 o arquivo do Google Workspace será convertido. Por exemplo, se você selecionar um arquivo dos Documentos Google na interface do Drive e o campo "Tipos MIME secundários" sugerir que o app oferece suporte a texto/simples ou aplicativo/pdf, a interface do Drive perguntará ao usuário se ele quer converter para texto simples ou PDF.
Para informações sobre como gerenciar 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 do tipo MIME, consulte Exportar tipos MIME para documentos do Google Workspace.
Processar um URL de abertura para documentos específicos do app
Conforme mencionado em Configurar uma integração da
interface do Drive,
seu app recebe variáveis de modelo com informações para abrir
o arquivo. Seu app recebe um conjunto padrão de variáveis de modelo
em um parâmetro state
. As
informações padrão do 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 o usuário de maneira exclusiva.
Seu app precisa agir de acordo com essa solicitação seguindo estas etapas:
- Verifique se o campo
action
tem um valor deopen
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 que fizeram login, 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 dele usando os valoresID
. - Se
resourceKeys
tiver sido definido na solicitação, defina o cabeçalhoX-Goog-Drive-Resource-Keys
. Para mais informações sobre chaves de recurso, consulte Acessar arquivos compartilhados por link usando chaves de recurso.
O parâmetro state
é codificado em URL, então seu app precisa processar os caracteres de escape e analisá-los como JSON.
Processar um URL aberto para documentos do Google Workspace
Conforme 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 do state
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 arquivo 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. O valor éopen
ao usar um URL aberto.- USER_ID: o ID do perfil que identifica o usuário.
Seu app precisa agir de acordo com 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
tiver sido definido na solicitação, defina o cabeçalhoX-Goog-Drive-Resource-Keys
. Para mais informações sobre chaves de recurso, consulte Acessar arquivos compartilhados por link usando chaves de recurso.Java
Python
Node.js
PHP
Mostre os arquivos convertidos como somente leitura ou mostre uma caixa de diálogo permitindo que o usuário salve o arquivo como o novo tipo.
O parâmetro state
é codificado em URL, então seu app precisa processar os caracteres de escape e analisá-los como JSON.
Usuários e novos eventos
Os apps do Drive precisam tratar todos os eventos "aberto 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 pela IU do Google Drive, os aplicativos podem exibir um seletor de arquivos para selecionar conteúdo dentro de um app. Para mais informações, consulte o Seletor do Google.