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 nueva de esa app definida en Cómo configurar una integración de 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 escreate
cuando un usuario hace clic en el botón "Nuevo" de la IU de Drive.- FOLDER_ID: Es el ID de la carpeta superior.
- FOLDER_RESOURCE_KEY: Es la clave de recurso de la carpeta superior.
- USER_ID: Es el ID de perfil que identifica de forma única al usuario.
Para responder a esta solicitud, la app debe seguir estos pasos:
- Verifica que el campo
action
tenga un valor decreate
. - 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 configurófolderId
en la solicitud, establece el campoparents
en el valorfolderId
. - Si se configuró
folderResourceKey
en la solicitud, configura el encabezado de solicitudX-Goog-Drive-Resource-Keys
. Para obtener más información sobre las claves de recursos, consulta Cómo acceder a archivos compartidos con vínculos usando claves de recursos.
El parámetro state
está codificado en formato URL, por lo que tu app debe controlar los caracteres de escape y analizarlos 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 del parámetro state
no coincide con la sesión actual, finaliza la sesión actual de la app y accede como el usuario solicitado.