Tengo una secuencia de comandos que carga un archivo csv en una unidad compartida y funciona bien, pero cuando intento crear una carpeta, no funciona. No estoy seguro de dónde me equivoco Código que estoy usando para crear una carpeta
function createFolder() { var parents = '1XNBrOtnXJU1MhYv0nrAwTDXRZ' var fileMetadata = { 'name': 'sample_folder', 'mimeType': 'application/vnd.google-apps.folder', 'parents' : [parents] }; drive.files.create({ resource: fileMetadata, fields: 'id' }, function (err, file) { if (err) { // Handle error console.error(err); } else { console.log('Folder Id: ', file.id); } }); }`Todavía puede usar la API de búsqueda en su JavaScript. Solo cambia la URL
De:
https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&supportsAllDrives=trueA:
https://www.googleapis.com/drive/v3/files?supportsAllDrives=truecambie el mimeType en sus metadatos
De:
"mimeType": "text/csv",A:
"mimeType": "application/vnd.google-apps.folder",eliminar esta línea de código:
var form = new FormData(); form.append('metadata', new Blob([JSON.stringify(metadata)], { type: 'application/json' })); form.append('file', file);y use los metadatos directamente como el cuerpo de su solicitud.
Su código debería verse así:
var parents = "18-7shshazxhkashjfk-xO"; var metadata = { "name": filename, "mimeType": "application/vnd.google-apps.folder", "parents": [parents], // Google Drive folder id }; var accessToken = gapi.auth.getToken().access_token; fetch("https://www.googleapis.com/drive/v3/files?supportsAllDrives=true", { method: 'POST', headers: new Headers({ 'Authorization': 'Bearer ' + accessToken, 'Accept': 'application/json', 'Content-Type': 'application/json' }), body: JSON.stringify(metadata), }).then((res) => { return res.json(); }).then(function(val) { console.log(val); });Debe proporcionar el tipo MIME application/vnd.google-apps.folder y un título.
Este enlace puede ayudar https://developers.google.com/drive/api/v3/folder#create_a_folder