Google Apps脚本:通过Google表单提交在Google云端硬盘中创建文件夹

时间:2018-01-17 02:07:41

标签: javascript google-apps-script gsuite

我正在尝试创建一个功能,在提交Google表单后,使用表单的前两个字段在Google云端硬盘中创建一个文件夹来命名该文件夹。目前正在创建表单而没有问题,但在提交时没有创建文件夹。这是我基于一些Googling提出的功能,它只使用第一个字段来创建文件夹名称:

function createForm() {
 var form = FormApp.create('New Form');

var clientName = form.addTextItem();
 clientName.setTitle('Client Name');
var clientAddress = form.addTextItem();
 clientAddress.setTitle('Address');
var clientPhoneNumber = form.addTextItem();
 clientPhoneNumber.setTitle('Phone Number');

function createFolder(form) {
  var items = form.response.getItemResponses()
  var name = items[0].getResponse();
  DriveApp.createFolder(name);
}


}

我出错的任何想法?

1 个答案:

答案 0 :(得分:0)

正如@Cooper在评论中建议的那样 - 您的脚本中没有任何内容可以将createFolder函数绑定到表单和表单提交操作。您需要做的是将createFolder函数与createForm函数分开,并让createForm函数为创建的表单安装触发器,该表单在提交时触发createFolder函数。见下面的例子:

function createForm() {
 var form = FormApp.create('New Form');

var clientName = form.addTextItem();
 clientName.setTitle('Client Name');
var clientAddress = form.addTextItem();
 clientAddress.setTitle('Address');
var clientPhoneNumber = form.addTextItem();
 clientPhoneNumber.setTitle('Phone Number');
ScriptApp.newTrigger('createFolder').forForm(form).onFormSubmit().create();
}

function createFolder(form) {
  var items = form.response.getItemResponses()
  var name = items[0].getResponse();
  DriveApp.createFolder(name);
}