Integrar com o botão "Novo" da interface do Drive
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Quando um usuário clica no botão "Novo" da interface do Drive e seleciona um app na interface do Drive, o Drive redireciona o usuário para o novo URL do app definido em Configurar uma integração da interface do Drive.
Em seguida, o app recebe um conjunto padrão de variáveis de modelo em um parâmetro state
. As informações state
padrão de 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 mãe.
- FOLDER_RESOURCE_KEY: a chave de recurso da pasta mãe.
- USER_ID: o ID do perfil que identifica exclusivamente o
usuário.
O app precisa processar essa solicitação seguindo estas etapas:
- Verifique se o campo
action
tem o valor create
.
- 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.create
para
criar um recurso de arquivo. Se folderId
foi definido na solicitação, defina o campo parents
como o valor de folderId
.
- Se
folderResourceKey
foi definido na solicitação, defina o cabeçalho da solicitação X-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 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
inícios de sessão. Alguns usuários podem ter várias contas. Por isso, o ID de 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.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-08-04 UTC.
[null,null,["Última atualização 2025-08-04 UTC."],[],[],null,["# Integrate with Drive UI's "New" button\n\nWhen a user clicks [Drive UI's \"New\"\nbutton](/workspace/drive/api/guides/about-apps#new) and selects an app in the\nDrive UI, Drive redirects the user to that app's New URL\ndefined in [Configure a Drive UI\nintegration](/workspace/drive/api/guides/enable-sdk).\n\nYour app then receives a default set of template variables within a\n[`state`](/workspace/drive/api/guides/enable-sdk#construct) parameter. The default `state`\ninformation for a New URL is: \n\n {\n \"action\":\"create\",\n \"folderId\":\"\u003cvar translate=\"no\"\u003eFOLDER_ID\u003c/var\u003e\",\n \"folderResourceKey\":\"\u003cvar translate=\"no\"\u003eFOLDER_RESOURCE_KEY\u003c/var\u003e\",\n \"userId\":\"\u003cvar translate=\"no\"\u003eUSER_ID\u003c/var\u003e\"\n }\n\nThis output includes the following values:\n\n- `create`: The action being performed. The value is `create` when a user clicks [Drive UI's \"New\"\n button](/workspace/drive/api/guides/about-apps#new).\n- \u003cvar translate=\"no\"\u003eFOLDER_ID\u003c/var\u003e: The ID of the parent folder.\n- \u003cvar translate=\"no\"\u003eFOLDER_RESOURCE_KEY\u003c/var\u003e: The resource key of the parent folder.\n- \u003cvar translate=\"no\"\u003eUSER_ID\u003c/var\u003e: The profile ID that uniquely identifies the user.\n\nYour app must act on this request by following these steps:\n\n1. Verify that the `action` field has a value of `create`.\n2. Use the `userId` value to create a new session for the user. For more information on signed-in users, see [Users \\& new events](#potential-logins).\n3. Use the [`files.create`](/workspace/drive/api/v3/reference/files/create) method to create a file resource. If `folderId` was set on the request, set the `parents` field to the `folderId` value.\n4. If `folderResourceKey` was set on the request, set the `X-Goog-Drive-Resource-Keys` request header. For more information on resource keys, see [Access link-shared files using resource\n keys](/workspace/drive/api/guides/resource-keys).\n\nThe `state` parameter is URL-encoded, so your app must handle the escape\ncharacters and parse it as JSON.\n\nUsers \\& new events\n-------------------\n\nDrive apps should treat all \"create\" events as potential\nsign-ins. Some users might have multiple accounts, so the user ID in the `state`\nparameter might not match the current session. If the user ID in the `state`\nparameter doesn't match the current session, end the current session for your\napp and sign in as the requested user."]]