从谷歌应用程序脚本设置谷歌表单项目的预填充值

Tec*_*irl 0 google-apps-script google-forms

我想实现什么目标?

我想使用谷歌表单跟踪谷歌文档的审核状态,下拉选项为“待办事项、进行中、完成”。我有谷歌表单项目作为“文档的URL,状态”。我创建了一个谷歌表单模板,我将使用它为各种用户创建表单。我希望能够创建模板表单的副本,并从谷歌应用程序脚本设置“URL”的预定义值,以便用户只需选择文档的状态。

我尝试了什么?

我从这个答案中遇到了 createResponse() 方法,但这需要.submit()用于保存响应并将答案记录在表中。我不想从脚本本身提交表单。这是代码:

function form()
{
  var form  = FormApp.create("Test");
  form.addTextItem().setTitle("URL");
  form.addTextItem().setTitle("Status");

  var items = form.getItems();
  var url = items[0].asTextItem();
  var fr = url.createResponse('my predefined url');

  var FormResponse = form.createResponse();
  FormResponse.withItemResponse(fr);
  FormResponse.submit();
  Logger.log(form.getPublishedUrl());
}
Run Code Online (Sandbox Code Playgroud)

最终查询:

如何从应用程序脚本中获取表单的已发布 URL 以及 URL 项目的预填充答案?是否可以?

Tec*_*irl 5

事实证明,有一种方法.toPrefilledUrl()可以返回带有预填充值的表单的已发布 URL。这是一个例子:

  var form  = FormApp.openByUrl("url");
  var items = form.getItems();
  var url = items[0].asTextItem();
  var d= "some.url"
  var fr = url.createResponse(d);

  var FormResponse = form.createResponse();
  var urlPub = FormResponse.withItemResponse(fr).toPrefilledUrl();
  Logger.log(urlPub);
Run Code Online (Sandbox Code Playgroud)