Quando um usuário seleciona um arquivo e clica no item "Abrir com" da IU do Drive, o Drive redireciona o usuário para o URL aberto do app definido em Configurar uma integração da IU do Drive.
Se você tiver marcado a caixa "Importação" ao configurar uma integração com a IU do Drive, o usuário poderá selecionar uma combinação de arquivos específicos do app e do Google Workspace para abrir. Quando você configura uma integração da IU 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 secundárias".
Para cada arquivo que o usuário quiser abrir, o Drive verifica os tipos MIME nos tipos MIME padrão e secundário definidos:
Para tipos MIME definidos no campo "Tipos MIME padrão", o ID do arquivo é transmitido ao app. Para mais informações 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 IU do Drive exibe 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 Documentos Google na IU do Drive e o campo "Tipos MIME secundários" sugerir que o app é compatível com texto/simples ou aplicativo/pdf, a IU do Drive 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 aberto para documentos do Google Workspace. Para ver 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 da IU do Drive,
o app recebe variáveis de modelo com informações para que ele abra
o arquivo. Seu app recebe um conjunto padrão de variáveis de modelo em um parâmetro state
. As
informações padrão state
para um URL aberto 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 arquivo mapeados para as respectivas chaves de recurso.
open
: a ação realizada. O valor éopen
ao usar um URL aberto.- USER_ID: o ID do perfil que identifica exclusivamente o usuário.
Para isso, seu app precisa seguir estas etapas:
- Verifique se o campo
action
tem um 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
tiver sido definido na solicitação, defina o cabeçalho de solicitaçãoX-Goog-Drive-Resource-Keys
. Para mais informações sobre chaves de recurso, consulte Acessar arquivos compartilhados de links usando chaves de recursos.
O parâmetro state
é codificado por URL. Por isso, 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 com a IU
do Drive, o app recebe um conjunto padrão de
variáveis de modelo em um parâmetro state
. As informações do state
padrão
de 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 do Google integrados).
- RESOURCE_KEYS: um dicionário JSON de IDs de arquivo mapeados para as respectivas chaves de recurso.
open
: a ação realizada. O valor éopen
ao usar um URL aberto.- USER_ID: o ID do perfil que identifica o usuário.
Para isso, seu app precisa seguir estas etapas:
Verifique se essa é uma solicitação para abrir um arquivo detectando o valor de
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çalho de solicitaçãoX-Goog-Drive-Resource-Keys
. Para mais informações sobre chaves de recurso, consulte Acessar arquivos compartilhados de links usando chaves de recursos.Java
Python
Node.js
PHP
Exiba os arquivos convertidos como somente leitura ou apresente uma caixa de diálogo em que o usuário possa salvá-lo como o novo tipo de arquivo.
O parâmetro state
é codificado por URL. Por isso, o 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 "abertos com" como possíveis logins. Como alguns usuários podem ter várias contas, 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 app na IU do Google Drive, ele pode exibir um seletor de arquivos para selecionar conteúdo de um app. Para mais informações, consulte o Seletor do Google.