无法从电子表格提交表单回复
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()
创建和提交表单回复。
- 使用
createResponse()
创建对表单的新回复。
- 要回答问题项目,请从该项目创建一个
ItemResponse
。
- 然后通过调用
FormResponse.withItemResponse(response)
. 将其附加到此表单响应
- 要保存组合的响应,请调用
FormResponse.submit()
。
https://developers.google.com/apps-script/reference/forms/form.html#createresponse
我正在尝试使用 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()
创建和提交表单回复。
- 使用
createResponse()
创建对表单的新回复。 - 要回答问题项目,请从该项目创建一个
ItemResponse
。 - 然后通过调用
FormResponse.withItemResponse(response)
. 将其附加到此表单响应
- 要保存组合的响应,请调用
FormResponse.submit()
。
https://developers.google.com/apps-script/reference/forms/form.html#createresponse