我正在尝试根据我在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具有一些未知值! 我该如何解决?
答案 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);
}