【问题标题】:Failed to submit form responses from a spreadsheet无法从电子表格提交表单回复
【发布时间】:2020-01-18 09:04:31
【问题描述】:

我正在尝试使用 Google 电子表格中的数据提交大量回复。 我使用了以下代码:

function FillForm() {
  var wrkSht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  for(var i = 2; i <= wrkSht.getLastRow(); i++)
  {
    try{
      UrlFetchApp.fetch("https://docs.google.com/forms/u/0/d/e/SomeID/formResponse", {"method" : "post",
                                                                                                                                    "payload" : {
                                                                                                                                      "entry.1320223480" : wrkSht.getRange("A" + i).getValue(),
                                                                                                                                      "entry.1469028961_sentinel" : wrkSht.getRange("B" + i).getValue(),
                                                                                                                                    "entry.379679049" : wrkSht.getRange("C" + i).getValue()
                                                                                                                                   }});
    }
    catch(ex)
    {
      MailApp.sendEmail("MyEmail@gmail.com", "error at spreedsheet", "name: " + wrkSht.getRange("A" + i).getValue() + " had the error: " + ex)
      throw ex;
    }
  }
}

但每次我尝试运行它时都会出现以下错误:

Exception: Request failed for https://docs.google.com returned code 400. Truncated server response: 

<!DOCTYPE html><html lang="en" class="m2"><head><link rel="shortcut icon" sizes="16x16"

 href="https://ssl.gstatic.com/docs/spreadsheets/forms/favic... (use muteHttpExceptions option to examine full response) (line 16, file "Code")

我怀疑我的问题出在条目号上:表格中的一个问题是多选,另一个是一个选择,但有多个选项可供选择。对于这两个问题,我找不到条目号,所以我输入了input type: hidden 条目号,我认为该条目号适用于希望通过代码提交响应的开发人员,但我不确定。

你能找到什么问题吗?

编辑:

有选项而不是文本的两个问题是问题,因为我试图在其中获取的值是字符串?这是代表选项之一的准确字符串,但也许还有其他方法可以将值输入到选项 quations?

【问题讨论】:

    标签: javascript json google-apps-script google-sheets-api google-forms


    【解决方案1】:

    我们可以尝试使用createResponse() 来创建和提交表单回复。

    1. 使用createResponse() 创建对表单的新回复。
    2. 要回答问题项目,请从项目创建一个ItemResponse
    3. 然后通过调用FormResponse.withItemResponse(response) 将其附加到此表单响应中。
    4. 要保存组合的响应,请致电FormResponse.submit()

    https://developers.google.com/apps-script/reference/forms/form.html#createresponse

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      相关资源
      最近更新 更多