【问题标题】:When using the FormResponse class, a unexpected Id is returned for a response depending on how the response is retrieved使用 FormResponse 类时,会根据响应的检索方式返回意外的 Id
【发布时间】:2014-03-03 17:32:06
【问题描述】:

我希望有人以前看过这个,我正在使用 Google 表单,并且在提交时,使用 Google Apps 脚本将响应 ID 存储在单独的电子表格中,以便将来存储更多元数据(ID 获得来自 onSubmit 事件响应中的方法e.response.getId())。在第一次提交 Google 表单时,我将响应 ID 记录在新工作表中。

我可以通过form.getResponse(responseIdStoredInSheet) 加载响应,但是,当我循环通过form.getResponses() 返回的响应并在返回的那些FormResponses 上调用.getId() 时,最后的Id 略有改变。我在文档和网上搜索了一个下午,以了解为什么会发生这种情况,但无济于事。

function testResponseIds()
{
  var responseIdStoredInSheet = 'ChMxNzM4MDQzNzQ5MjQyNDc0Njg4EAA';

  //only response in the form
  var formResponse = form.getResponse(responseIdStoredInSheet);
  //outputs as expected above - ChMxNzM4MDQzNzQ5MjQyNDc0Njg4EAA
  Logger.log(formResponse.getId());

  //loop through all responses (only above response is present)
  var formResponses = form.getResponses();
  for (var i = 0; i < formResponses.length; i++)
  {
    //Outputs slightly different Id - ChMxNzM4MDQzNzQ5MjQyNDc0Njg4EJ2kvMHLzsOvdg
    Logger.log(formResponses[i].getId());
  }
}

上面的记录输出:

[14-03-03 17:12:51:259 GMT] ChMxNzM4MDQzNzQ5MjQyNDc0Njg4EAA
[14-03-03 17:12:51:279 GMT] ChMxNzM4MDQzNzQ5MjQyNDc0Njg4EJ2kvMHLzsOvdg

【问题讨论】:

    标签: google-apps-script google-forms


    【解决方案1】:

    我在我的一个表单上测试了您的代码,它看起来按预期工作。我的假设是您删除了您尝试检索的答案,但您仍然可以通过脚本获得它(我不知道原因,我想是缓存)。
    我可以建议您检索编辑 URL,以便您看到它不是相同的答案(修改它并检查表单答案)。

    Logger.log(formResponses[i].getEditResponseUrl());
    

    顺便说一句,您忘记了在您发布的脚本中:

    var form = FormApp.getActiveForm();
    

    或等效的(如果不添加该行就无法运行您的脚本)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-10
      • 2016-10-27
      • 2019-03-26
      • 2016-02-03
      • 2018-10-23
      • 2019-07-24
      • 2016-03-23
      • 2017-05-18
      相关资源
      最近更新 更多