Realiza la integración con el botón "Nuevo" de la IU de Drive

Cuando un usuario hace clic en el botón “Nuevo” de la IU de Drive y selecciona una app en la IU, Drive lo redirecciona a la URL nueva de esa app que se define en la sección Cómo configurar una integración de la IU de Drive.

Luego, la app recibe un conjunto predeterminado de variables de plantilla en 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 realiza. El valor es create cuando un usuario hace clic en el botón "Nuevo" de la IU de Drive.
  • FOLDER_ID: El ID de la carpeta superior
  • FOLDER_RESOURCE_KEY: Es la clave del recurso de la carpeta superior.
  • USER_ID: Es el ID de perfil que identifica de forma única al usuario.

Tu app debe seguir estos pasos para responder a esta solicitud:

  1. Verifica que el campo action tenga el valor create.
  2. Usa el valor userId a fin de crear una sesión nueva para el usuario. Para obtener más información sobre los usuarios que accedieron a sus cuentas, consulta Usuarios y eventos nuevos.
  3. Usa el método files.create para crear un recurso de archivos. Si se configuró folderId en la solicitud, configura el campo parents en el valor folderId.
  4. Si se configuró folderResourceKey en la solicitud, configura el encabezado de la solicitud X-Goog-Drive-Resource-Keys. Para obtener más información sobre las claves de recursos, consulta Cómo acceder a archivos compartidos mediante vínculos mediante claves de recursos.

El parámetro state está codificado para 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. Algunos usuarios pueden tener 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 tu app y accede como el usuario solicitado.