Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

285
Vistas
creando una carpeta dentro de una carpeta existente en Google Drive usando Javascript

Estoy creando una aplicación usando asp.net mvc y javascript en la que quiero crear carpetas dentro de mi carpeta de Google Drive existente.

a continuación está mi código que obtuve de stackoverflow

 function createFolder() { var body = { 'title': document.getElementById('txtFolderName').value, 'mimeType': "application/vnd.google-apps.folder" }; var request = gapi.client.drive.files.insert({ 'resource': body }); request.execute(function (resp) { console.log('Folder ID: ' + resp.id); }); }

Estoy recibiendo el siguiente error

index.html:61 TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'archivos')

en la siguiente línea

var solicitud = gapi.client.drive.files.insert({

aquí gapi.client.drive parece estar indefinido

a continuación está mi código para autenticar y cargar el cliente de Google API

 function authenticate(callback) { return gapi.auth2.getAuthInstance() .signIn({ scope: "https://www.googleapis.com/auth/documents https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file" }) .then(function () { console.log("Sign-in successful"); callback == undefined ? '' : callback(); }, function (err) { console.error("Error signing in", err); }); } function loadClient() { gapi.client.setApiKey("APIKEY"); return gapi.client.load("https://docs.googleapis.com/$discovery/rest?version=v1") .then(function () { console.log("GAPI client loaded for API"); }, function (err) { console.error("Error loading GAPI client for API", err); }); }

¿Cuál es el problema aquí?

y ¿qué debo hacer si quiero crear una carpeta dentro de otra carpeta?

gracias de antemano

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Pensé que en su script, https://docs.googleapis.com/$discovery/rest?version=v1 of gapi.client.load("https://docs.googleapis.com/$discovery/rest?version=v1") se utiliza para Google Docs API v1. Creo que el motivo de su mensaje de error de Uncaught TypeError: Cannot read properties of undefined (reading 'files') se debe a esto.

En su objetivo, parece que desea crear una carpeta en una carpeta específica. En este caso, utilice la API de Drive. Pero, cuando vi su secuencia de comandos actual para crear la carpeta, se usa Drive API v2. Por lo tanto, modifique de la siguiente manera.

De:

 return gapi.client.load("https://docs.googleapis.com/$discovery/rest?version=v1")

A:

 return gapi.client.load("https://www.googleapis.com/discovery/v1/apis/drive/v2/rest")
  • Con esta modificación, pensé que su createFolder() funciona. Pero en su createFolder() actual, la carpeta se crea en la carpeta raíz. Cuando desee crear la carpeta en una carpeta específica, modifique el cuerpo de la solicitud de la siguiente manera.

     var body = { 'title': document.getElementById('txtFolderName').value, 'mimeType': "application/vnd.google-apps.folder", 'parents': [{'id': '###folderId###'}] };

Nota:

  • Como información adicional, si desea utilizar Drive API v3, modifíquelo de la siguiente manera.

    • De

       return gapi.client.load("https://docs.googleapis.com/$discovery/rest?version=v1")
    • A

       return gapi.client.load("https://www.googleapis.com/discovery/v1/apis/drive/v3/rest")
    • Y, modifique createFolder() de la siguiente manera.

       var body = { 'name': document.getElementById('txtFolderName').value, 'mimeType': "application/vnd.google-apps.folder", 'parents': ['###folderId###'] }; var request = gapi.client.drive.files.create({ 'resource': body });

Referencias:

  • Archivos: inserción de Drive API v2
  • Archivos: creación de Drive API v3
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda