Realiza la integración con el botón "Nuevo" de la IU de Drive
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Cuando un usuario hace clic en el botón "Nuevo" de la IU de Drive y selecciona una app en la IU de Drive, Drive lo redirecciona a la URL de Nuevo de esa app definida en Configura una integración en la IU de Drive.
Luego, tu app recibe un conjunto predeterminado de variables de plantilla dentro de un parámetro state
. La información predeterminada de state
para una URL nueva es la siguiente:
{
"action":"create",
"folderId":"FOLDER_ID",
"folderResourceKey":"FOLDER_RESOURCE_KEY",
"userId":"USER_ID"
}
En esta salida, se incluyen los siguientes valores:
create
: Es la acción que se está realizando. El valor es create
cuando un usuario hace clic en el botón "Nuevo" de la IU de Drive.
- FOLDER_ID: ID de la carpeta principal.
- FOLDER_RESOURCE_KEY: Es la clave de recurso de la carpeta principal.
- USER_ID: Es el ID de perfil que identifica de forma única al usuario.
Tu app debe responder a esta solicitud siguiendo estos pasos:
- Verifica que el campo
action
tenga un valor de create
.
- Usa el valor
userId
para crear una sesión nueva para el usuario. Para obtener más información sobre los usuarios que accedieron, consulta Usuarios y eventos nuevos.
- Usa el método
files.create
para crear un recurso de archivo. Si se estableció folderId
en la solicitud, establece el campo parents
en el valor de folderId
.
- Si se configuró
folderResourceKey
en la solicitud, establece el encabezado de solicitud X-Goog-Drive-Resource-Keys
. Para obtener más información sobre las claves de recursos, consulta Cómo acceder a archivos compartidos por vínculo con claves de recursos.
El parámetro state
está codificado como URL, por lo que tu app debe controlar los caracteres de escape y analizarlo como JSON.
Usuarios y eventos nuevos
Las apps de Drive deben tratar todos los eventos de "creación" como posibles accesos. Es posible que algunos usuarios tengan varias cuentas, por lo que el ID de usuario en el parámetro state
podría no coincidir con la sesión actual. Si el ID de usuario en el parámetro state
no coincide con la sesión actual, finaliza la sesión actual de tu app y accede como el usuario solicitado.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-04 (UTC)
[null,null,["Última actualización: 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."]]