从谷歌表单中提取电子邮件ID,并根据电子邮件ID在谷歌驱动器上创建一个文件夹

时间:2017-09-26 20:21:51

标签: google-apps-script google-sheets google-form

我正在尝试根据我在Google表单上获得的回复在Google云端硬盘上创建一个文件夹。 我已经要求用户在表单中输入他们的电子邮件地址。我想使用此电子邮件地址在Google云端硬盘上创建一个文件夹!

我已经提出以下代码(未优化)来创建文件夹!

function myfunction() {
var form = FormApp.openById('1EDIT8BSfCUdKxgMLgIjP9VJGPJlQFMHZFpQqa6R_bMs');
var formResponses = form.getResponses();
for (var i = 0; i < 1; i++) {
var formResponse = formResponses[i];
var itemResponses = formResponse.getItemResponses();
for (var j = 0; j < 1; j++) {
var itemResponse = itemResponses[j];
var email = itemResponses[0].getResponse();
DriveApp.createFolder(email)}};
}

我可以在使用触发功能记录每个响应后创建一个新文件夹,但由于某种原因,创建的文件夹不是用户输入的电子邮件ID。

这是可执行文件 -

[17-09-26 13:07:39:569 PDT] Starting execution
[17-09-26 13:07:39:655 PDT] 
FormApp.openById([1EDIT8BSfCUdKxgMLgIjP9VJGPJlQFMHZFpQqa6R_bMs]) [0.079 
seconds]
[17-09-26 13:07:40:495 PDT] Form.getResponses() [0.839 seconds]
[17-09-26 13:07:40:496 PDT] FormResponse.getItemResponses() [0 seconds]
[17-09-26 13:07:40:496 PDT] ItemResponse.getResponse() [0 seconds]
[17-09-26 13:07:41:315 PDT] 
DriveApp.createFolder([0B5FjIzaVY166ZVdjc251T2VnUjA]) [0.818 seconds]
[17-09-26 13:07:41:317 PDT] Execution succeeded [1.74 seconds total runtime]

您可以注意到Driveapp.Createfolder具有一些未知值! 我该如何解决?

1 个答案:

答案 0 :(得分:2)

使用事件对象获取响应ID,然后按ID获取正确的响应。

function myfunction(e) {
  var email, form, formResponse, responseID;

  form = FormApp.openById('Form ID');

  responseID = e.response.getId();

  formResponse = form.getResponse(responseID);

  itemResponses = formResponse.getItemResponses();

  email = itemResponses[0].getResponse();//Index must be correct

  DriveApp.createFolder(email);
}