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

Sta*_*tan 10 javascript google-apps-script google-forms

所以我有一个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);
}
Run Code Online (Sandbox Code Playgroud)

function doPost(e) {
 var id = e.parameter.id;
 Logger.log("do post " + id);
}
Run Code Online (Sandbox Code Playgroud)

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

另外,我尝试使用普通的旧javascript来做类似的事情:

var formUrl = window.location.href;
var formId = formUrl.split('?id=')[1];
Run Code Online (Sandbox Code Playgroud)

当您查看执行记录时,这也会引发错误.

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

rpi*_*key 9

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

但是,这将显示表单上的字段.我自己在寻找如何使这样一个字段只读或不可见的,当我来到这里,但我希望这显示了一个新的方向去尝试.

  • 我在找和你一样的东西。您是不是偶然找到了解决方案,或者您知道是否有人向我提交了可以投票支持的功能请求? (2认同)
  • 您还可以通过检查预览表单页面中的源来找到entry.XXXXXXXXX信息。 (2认同)