【问题标题】:Submitting a response to google form using google apps script [duplicate]使用谷歌应用脚​​本提交对谷歌表单的回复[重复]
【发布时间】:2014-12-13 06:51:16
【问题描述】:

我正在尝试生成一个脚本来打开一个谷歌表单并填写它。

我已经能够通读文档并执行以下操作: 使用它的 ID 选择一个表单,在“item”数组中获取问题列表,获取问题的类型及其 ID,通过 id 获取项目,通过各种类型返回它并对元素进行各种“选择”在表格中。

我无法 1. 为表单中的特定项目设置响应,或者 2. 提交带有响应的表单。无论我做什么,formReponse 对象都是空的。

formResponse,尽管是一个类,但没有 for 循环会出现未定义,除非我在那里有该代码。

function myFunction() {
   var form = FormApp.openById('1h_8Gz5GKwLqUdw249rpMWu6-AlrDJgUig-rdMCC7TWU');
   //form.addTextItem();
   var items =  form.getItems();
   Logger.log(items);
  // Access the text item as a generic item.
  var item1 = items[0];
  Logger.log(item1);
  var item1type = item1.getType();
  Logger.log(item1type);
  var item1id = item1.getId();
  var getitem1 = item1.asTextItem();
  var getitem1t = form.getItemById(item1id);
  var response = "tewtw";
  getitem1t.createResponse(response);

  var formResponses = form.getResponses();

  for (var i = 0; i < formResponses.length; i++) {
   var formResponse = formResponses[i];
   var itemResponses = formResponse.getItemResponses();
   for (var j = 0; j < itemResponses.length; j++) {
    var itemResponse = itemResponses[j];
    Logger.log('Response #%s to the question "%s" was "%s"',
         (i + 1).toString(),
        itemResponse.getItem().getTitle(),
        itemResponse.getResponse()); 
 }

formResponse.submit();
}

谢谢!

【问题讨论】:

  • 您是否在电子表格中收集表单响应?如果是这样,我建议采取不同的方法。无需自动填写和提交表单,而是使用电子表格服务直接插入您的数据。

标签: javascript arrays google-apps-script


【解决方案1】:

您可以使用类似于Mogsdad shows here 的代码“模拟”表单答案,该代码将调用onFormSubmit 触发函数。这个“模拟”函数应该在同一个脚本项目中才能调用提交函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多