Integrar com o botão "Novo" da interface do Drive

Quando um usuário clica no botão "Novo" da interface do Drive e seleciona um app nessa interface, o Drive redireciona o usuário para o novo URL desse app definido em Configurar uma integração de interface do Drive.

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 novo URL são:

{
  "action":"create",
  "folderId":"FOLDER_ID",
  "folderResourceKey":"FOLDER_RESOURCE_KEY",
  "userId":"USER_ID"
}

Esta saída inclui os seguintes valores:

  • create: a ação que está sendo realizada. O valor é create quando um usuário clica no botão "Novo" da interface do Drive.
  • FOLDER_ID: o ID da pasta pai.
  • FOLDER_RESOURCE_KEY: a chave de recurso da pasta pai.
  • USER_ID: o ID do perfil que identifica exclusivamente o usuário.

Para atender a essa solicitação, o app precisa seguir estas etapas:

  1. Verifique se o campo action tem o valor create.
  2. 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.
  3. Use o método files.create para criar um recurso de arquivo. Se folderId foi definido na solicitação, defina o campo parents como o valor folderId.
  4. Se folderResourceKey tiver sido definido na solicitação, defina o cabeçalho X-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 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 de "criação" 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.