Google apps komut dosyası ile oluşturma tarihine göre resimler nasıl eklenir?

0

Soru

Resim dosyalarını oluşturuldukları tarihe göre google slaytlar'a eklemek istiyorum. Aşağıdaki kodu var, hangi sequentually sürücü klasöründen googles slaytlarına resim ekler:

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++;
 
  }

}

Görüntülerin oluşturuldukları tarihe (en yeni veya en eski) eklenecek şekilde değiştirmek istiyorum. Alınan herhangi bir yardım çok takdir edilecektir. Teşekkürler.

2

En iyi cevabı

2

Amacınızın aşağıdaki gibi olduğuna inanıyorum.

  • Görüntü dosyalarını belirli klasörden almak istiyorsunuz.
  • Alınan görüntüleri, dosyanın oluşturulduğu tarihe göre Google Slaytlar'a koymak istiyorsunuz.
  • Google Apps Komut Dosyasını kullanarak bunu başarmak istiyorsunuz.

Bu durumda, aşağıdaki değişikliğe ne dersiniz?

Drive Apı'sindeki "Dosyalar: liste" yöntemi kullanıldığında, dosya listesi oluşturulan tarih sırasına göre alınabilir. Bu değişiklik için kullanılır.

Değiştirilmiş komut dosyası:

Bu komut dosyasını kullanmadan önce lütfen Gelişmiş Google hizmetlerinde Drive API'sini etkinleştirin.

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);
  });
}
  • Bu komut dosyası çalıştırıldığında, dosya listesi, dosyanın oluşturulduğu tarih sırasına göre belirli klasörden alınır. Bu durumda, orderBy: "createdDate asc" kullanılır. 1. Resim eski resim bu yani. 1. görüntünün en yeni görüntü olduğu sırasını kullanmak istediğinizde, lütfen şu şekilde değiştirin: orderBy: "createdDate desc".

Referanslar:

2021-11-24 00:26:31

Cevabın için teşekkürler Tanaike, bu tam istediğim şeyi yapıyor.
sp2

@ sp2 Yanıtladığınız ve test ettiğiniz için teşekkür ederiz. Sorunun çözülmüş olmasına sevindim. Size de teşekkür ederim.
Tanaike

Merhaba Tanaike, yukarıdaki kodun paylaşılan bir google drive'dan dosyalara yüklenemediğini görüyorum (kod hata vermiyor, sadece hiçbir şey yüklemiyor). Görüntüleri yalnızca kişisel sürücümden yükleyebilirim-burada neler olduğu hakkında bir fikriniz var mı?
sp2

@ sp2 Ek sorunuzla ilgili olarak, bu durumda lütfen değiştirin var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items; -e doğru var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)", corpora: "allDrives", includeItemsFromAllDrives: true, supportsAllDrives: true}).items;. Bu sayede paylaşılan Sürücüdeki dosyalar alınabilir.
Tanaike

Teşekkürler Tanaike, bu işe yarıyor. Ben değiştirmeye çalışıyorum orderBy dosyaları sıraya göre sıralamak için parametre 'name' ve 'name_natural' vb. burada özetlendiği gibi, ancak bir hata veriyor. Neden yapamıyorsun orderBy bu parametreleri bu şekilde kabul ediyor musunuz?
sp2

@ sp2 Yanıtladığınız için teşekkür ederiz. 2. sorunun çözüldüğüne sevindim. 3. yeni sorunuz hakkında size destek olmak istiyorum. Ama kötü ingilizce yeteneğim için özür dilemeliyim. Ne yazık ki, ben onu anlayamıyorum. Tüm sorularınızı çözemediğim için çok özür dilerim. Bu benim zayıf ingilizce yeteneğimden kaynaklanıyor. Derin bunun için tekrar özür dilerim. 3. sorunuzun detayını sorabilir miyim?
Tanaike

Merhaba Tanaike, bu tamamen anlaşılabilir, özür dilemene gerek yok. Temel olarak, alfabetik sırayla nasıl resim ekleyebileceğimi soruyordum? Kullanmak istedim orderBy : name veya orderBy : name_natural kodunuzda değil orderBy : createdDate paylaştığım linkte belirtildiği gibi, ama işe yaramıyor, sadece nedenini merak ediyordum.
sp2

@ sp2 Yanıtladığınız için teşekkür ederiz. Yine kötü ingilizce yeteneğim için özür dilerim. Her ne kadar 2. sorunuzu doğru bir şekilde anlayıp anlayamayacağımdan emin değilim, örneğin cevabımda, dosya listesi sırayla alındığında createdDate Kullandım createdDate asc değer olarak. Ve bu durumda, dosya listesini dosya adına göre sıralamak istediğinizde, kullanmaya ne dersiniz orderBy: "title asc"? Bu, 2. sorunuzun doğrudan çözümü değilse, tekrar özür dilerim.
Tanaike
1

İsterseniz bunları özel sipariş sadece sıralama onlardan önce sözlerine ekledi.

2021-11-23 23:55:56

Bu bağlantıyı paylaştığınız için teşekkürler
sp2

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................