通过 google 脚本提交表单
Submitting a form through google scripts
我需要在 google 脚本中提交表单,但出现此错误:
TypeError: Cannot call method "withItemResponse" of undefined
根据下面的link,应该这样设置https://developers.google.com/apps-script/reference/forms/form#createResponse()
代码:
//Submit form
var formID = row[24];
var form = FormApp.openById(formID);
Logger.log(form.getId()); //returns correct ID
form.createResponse() ;
form.FormResponse.withItemResponse('Core Teachers', logSummary);
//form has only two questions, a short text and a paragraph text
form.FormResponse.submit();
form.createResponse()
returns一个FormResponse
,你需要赋值给一个变量。
另外,withItemResponse()
需要类型为 ItemResponse
的对象。我不熟悉 google 表格,但也许这会让你朝着正确的方向前进:
var formID = row[24];
var form = FormApp.openById(formID);
var formResponse = form.createResponse();
// get items of form and loop through
var items = form.getItems();
for (index = 0; index < a.length; ++index) {
var item = items[index]
// Cast the generic item to the text-item class. You will likely have to adjust this part. You can find the item classes in the documentation. https://developers.google.com/apps-script/reference/forms/item-type.
if (item.getType() == 'TEXT') {
var textItem = item.asTextItem();
var itemresponse = textItem.createResponse('Core Teachers');
formResponse.withItemResponse(itemresponse);
}
}
formResponse.submit();
通常,当方法的文档中列出的参数类型不是原始类型(如 String 或 Boolean)时,您需要创建或获取该类型的对象,就像我对 createResponse 所做的那样。您需要熟悉这些原则和其他原则,因为 GoogleAppsScript 文档假定您了解这些原则。
我需要在 google 脚本中提交表单,但出现此错误:
TypeError: Cannot call method "withItemResponse" of undefined
根据下面的link,应该这样设置https://developers.google.com/apps-script/reference/forms/form#createResponse()
代码:
//Submit form
var formID = row[24];
var form = FormApp.openById(formID);
Logger.log(form.getId()); //returns correct ID
form.createResponse() ;
form.FormResponse.withItemResponse('Core Teachers', logSummary);
//form has only two questions, a short text and a paragraph text
form.FormResponse.submit();
form.createResponse()
returns一个FormResponse
,你需要赋值给一个变量。
另外,withItemResponse()
需要类型为 ItemResponse
的对象。我不熟悉 google 表格,但也许这会让你朝着正确的方向前进:
var formID = row[24];
var form = FormApp.openById(formID);
var formResponse = form.createResponse();
// get items of form and loop through
var items = form.getItems();
for (index = 0; index < a.length; ++index) {
var item = items[index]
// Cast the generic item to the text-item class. You will likely have to adjust this part. You can find the item classes in the documentation. https://developers.google.com/apps-script/reference/forms/item-type.
if (item.getType() == 'TEXT') {
var textItem = item.asTextItem();
var itemresponse = textItem.createResponse('Core Teachers');
formResponse.withItemResponse(itemresponse);
}
}
formResponse.submit();
通常,当方法的文档中列出的参数类型不是原始类型(如 String 或 Boolean)时,您需要创建或获取该类型的对象,就像我对 createResponse 所做的那样。您需要熟悉这些原则和其他原则,因为 GoogleAppsScript 文档假定您了解这些原则。