无法从电子表格提交表单回复

Failed to submit form responses from a spreadsheet

我正在尝试使用 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 入口编号,我认为它适用于希望通过代码提交回复的开发人员,但我不确定。

你能发现什么问题吗?

编辑:

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

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

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

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