Estoy buscando insertar archivos de imagen en diapositivas de Google de acuerdo con la fecha en que se crearon. Tengo el siguiente código, que inserta secuencialmente imágenes en las diapositivas de Google desde una carpeta de la unidad:
function makeSlides() { var presentation = SlidesApp.openById(slideID); var folder = DriveApp.getFolderById(folderID); var contents = folder.getFiles() var file; var i = 1; while (contents.hasNext()) { var file = contents.next(); data = file.getId(); // insert above image var image = DriveApp.getFileById(data); var slide = presentation.getSlides()[i]; var image = slide.insertImage(image); slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK); i++; } }Me gustaría modificarlo para que las imágenes se agreguen según la fecha en que se crearon (ya sea la más nueva o la más antigua). Cualquier ayuda recibida será muy apreciada. Gracias.
Creo que su objetivo es el siguiente.
En este caso, ¿qué tal la siguiente modificación?
Cuando se utiliza el método de "Archivos: lista" en Drive API, la lista de archivos se puede recuperar en el orden de la fecha de creación. Esto se utiliza para la modificación.
Antes de usar este script, habilite la API de Drive en los servicios avanzados de Google .
function makeSlides() { var slideID = "###"; // Please set your Google Slides ID. var folderID = "###"; // Please set your folder ID. var presentation = SlidesApp.openById(slideID); var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items; files.forEach(({id}, i) => { var image = DriveApp.getFileById(id); var slide = presentation.getSlides()[i]; var image = slide.insertImage(image); slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK); }); }orderBy: "createdDate asc" . Esto significa que la primera imagen es la imagen más antigua. Cuando desee utilizar el orden en el que la primera imagen es la imagen más nueva, modifique a orderBy: "createdDate desc" .