0

I'm following a tuturial on how to automatically change filenames on files uploaded through a Google Form. Upon running the script I get the following error:

TypeError: Cannot read property 'getResponse' of undefined
RenameResponses @ Kode.gs:19

This is the script:

function RenameResponses() {
var form = FormApp.openById('MyFormID'); //DDD
var formResponses = form.getResponses();
var baseString = 'https://drive.google.com/file/d/';
var endString = '/view?usp=drivesdk';
  
var folder = DriveApp.getFolderById('MyFolderID');
var files = folder.getFiles();
 
  while (files.hasNext()) {
    var file = files.next();
    for (var i = 0; i < formResponses.length; i++) {
      var formResponse = formResponses[i];
      var itemResponses = formResponse.getItemResponses();
      var itemResponseTimestamp = itemResponses[0];
      var itemResponseName = itemResponses[1];
      var itemResponsePhoto = itemResponses[2];
      
      var photoID = itemResponsePhoto.getResponse();
      var newName = itemResponseName.getResponse() + " - " + itemResponseTimestamp.getResponse();
      var url = baseString + photoID + endString;
      var urlCheck = file.getUrl();
      if ( url == urlCheck) {
        var modName = newName + ".jpg";
        file.setName(modName);
      }
    }
  }
}

Line 19 is this one:

var photoID = itemResponsePhoto.getResponse();

Any ideas as to what the issue is?

I'm a total noob btw, so spoon feed me if you can :P

Cheers

tTownTom
  • 11
  • 2
  • Try adding this:`try { var photoID = itemResponsePhoto.getResponse(); var newName = itemResponseName.getResponse() + " - " + itemResponseTimestamp.getResponse(); } catch (error){ console.log(error); console.log(i); }` It should catch the error and let you now which item it occurred on and you need to go in and investigate why it thinks it's null – Cooper Oct 18 '21 at 16:03
  • It looks like it could be that either of these itemResponses is undefined: `var itemResponseName = itemResponses[1]; var itemResponsePhoto = itemResponses[2];` – Cooper Oct 18 '21 at 16:06
  • What does `console.log(itemResponses)` return? – Jose Vasquez Oct 19 '21 at 11:06

0 Answers0