如何使用Google Apps脚本在Google表单中获取网址参数?

时间:2014-02-04 13:43:28

标签: javascript google-apps-script google-form

所以我有一个Google表单,我想通过这样的电子邮件链接传递一个参数:

  

https://docs.google.com/URL/forms/d/LONGSTRING/viewform?id=12345

我希望能够获取该ID并将其传递到电子表格记录结果中。现在我已经写了一个电子表格,但是获取id是有问题的。

我已经尝试过了:

function doGet(e) {
  var id = e.parameter.id;
  Logger.log(id);
}

function doPost(e) {
 var id = e.parameter.id;
 Logger.log("do post " + id);
}

当我查看执行记录时,两者都会抛出错误,我怀疑这是因为它们被设计为在已部署的webapps中运行。

此外,我尝试使用普通的旧javascript来执行以下操作:

var formUrl = window.location.href;
var formId = formUrl.split('?id=')[1];

在查看执行记录时也会抛出错误。

还有其他想法吗?也许我可以用另一种方式获取信息?

2 个答案:

答案 0 :(得分:9)

我认为你不能使用自己的id,你必须使用Google Form的“Item”对象的id。您可以通过查看预填充表单来确定ID。在表单编辑屏幕中,单击“响应”,“获取预填充的URL”。填写您要使用的字段,然后单击“提交”。在新页面上,您将在“共享此链接以预填充回复”中获得一个URL。检查那个url,你可以看到“get”参数,例如?entry.265525444 = mytext。将mytext替换为你想要的任何内容。

但是,这将显示表单上的字段。当我到达这里时,我自己正在寻找如何让这样一个场只读或看不见,但我希望这会给你一个新的尝试方向。

答案 1 :(得分:-1)

我假设您正在尝试获取表单ID?

您需要设置一个将在表单提交时运行的触发器。

function onSubmit(){

  var form = FormApp.getActiveForm();
  var formID = form.getId();

}