Google apps script Google应用程序脚本:提交时获取Google表单响应的内容

Google apps script Google应用程序脚本:提交时获取Google表单响应的内容,google-apps-script,Google Apps Script,我正在尝试创建一个谷歌应用程序脚本来生成包含谷歌表单内容的谷歌文档,回答问题,上传图片。 是否可以执行以下操作 当用户提交表单时触发Google应用程序脚本我认为手动安装触发器是可能的 获取表单响应的内容 生成包含表单响应内容的Google文档 提交后添加以下内容 我想知道以下问题的答案,以实现这一点 提交表单时如何触发应用程序脚本 如何从触发的脚本获取表单响应对象 关于问题1, *我们可以手动安装触发器 *我们可以得到这样的表单响应对象 function onFormSubmit(e) {

我正在尝试创建一个谷歌应用程序脚本来生成包含谷歌表单内容的谷歌文档,回答问题,上传图片。 是否可以执行以下操作

当用户提交表单时触发Google应用程序脚本我认为手动安装触发器是可能的 获取表单响应的内容 生成包含表单响应内容的Google文档 提交后添加以下内容 我想知道以下问题的答案,以实现这一点

提交表单时如何触发应用程序脚本 如何从触发的脚本获取表单响应对象 关于问题1, *我们可以手动安装触发器 *我们可以得到这样的表单响应对象

function onFormSubmit(e) {
  const form = FormApp.getActiveForm();
  const formResponses = form.getResponses();
  Logger.log('form id = ' + form.getId() + ', length = ' + formResponses.length);
  const formResponse = formResponses[formResponses.length-1];
  const itemResponses = formResponse.getItemResponses();

  const doc = DocumentApp.create('New response');
  const body = doc.getBody();

  for (var j = 0; j < itemResponses.length; j++) {
    var itemResponse = itemResponses[j];
    const item = itemResponse.getItem();
    body.appendParagraph('Response #%s to the question "%s" was "%s"',
        (i + 1).toString(),
        itemResponse.getItem().getTitle(),
        itemResponse.getResponse());
  }

  docblob = doc.getAs('application/pdf');
  docblob.setName(doc.getName() + ".pdf");
  const file = DriveApp.createFile(docblob);
  DriveApp.addFile(file);

  MailApp.sendEmail(
    "mail address",
    "new response",
    file.getDownloadUrl())
}
触发因素: 首先,您需要设置onFormSubmit触发器

Mogsdad对此有自己的看法:

选择编辑>当前项目的触发器。您会看到一个面板,其中显示消息“未设置触发器”。单击此处立即添加一个。 点击链接。 在“运行”下,选择要由触发器执行的函数。在这种情况下,这就是getResponse。 在事件下,从电子表格中选择。 从下一个下拉列表中,选择表单提交。 单击保存。 注意:需要为此在电子表格上设置触发器

获取响应值: 一旦触发器设置正确,您只需:

function getResponse(e) {
  var response = e.values;
}
这里我们使用事件对象来获取表单响应中提交的值。这将返回提交到电子表格的值数组,在我测试的示例中,数组如下所示:

[2019年7月25日10:02:36,选项1,答案2,选项3]

参考资料: 触发因素: 首先,您需要设置onFormSubmit触发器

Mogsdad对此有自己的看法:

选择编辑>当前项目的触发器。您会看到一个面板,其中显示消息“未设置触发器”。单击此处立即添加一个。 点击链接。 在“运行”下,选择要由触发器执行的函数。在这种情况下,这就是getResponse。 在事件下,从电子表格中选择。 从下一个下拉列表中,选择表单提交。 单击保存。 注意:需要为此在电子表格上设置触发器

获取响应值: 一旦触发器设置正确,您只需:

function getResponse(e) {
  var response = e.values;
}
这里我们使用事件对象来获取表单响应中提交的值。这将返回提交到电子表格的值数组,在我测试的示例中,数组如下所示:

[2019年7月25日10:02:36,选项1,答案2,选项3]

参考资料:
这绝对是可能的,做一些研究。试着写剧本,如果你有什么问题不能解决,在这里问个问题。这一点目前有点过于宽泛,因为您没有自己的代码进行故障排除。好吧,那么您不知道答案吗?您的问题的答案是肯定的-可以这样做。我的问题是1。如何触发应用程序脚本,2。当脚本被触发时,如何获取表单内容或如何获取表单对象。添加问题这是绝对可能的,请对其进行一些研究。试着写剧本,如果你有什么问题不能解决,在这里问个问题。这一点目前有点过于宽泛,因为您没有自己的代码进行故障排除。好吧,那么您不知道答案吗?您的问题的答案是肯定的-可以这样做。我的问题是1。如何触发应用程序脚本,2。触发脚本时如何获取表单内容或如何获取表单对象。添加问题