如何查找 Google 表单 ID

Kri*_*Lyn 7 html web-scraping google-apps-script google-forms

更新!表单 ID 位于网址中。

有人好心地向我指出(在 Stack Overflow 之外)可以在网址中找到标识表单的表单 ID。例子:

https://docs.google.com/forms/d/1y9XMjvZi_wlFC2FN64cdafIyGuM_7UOsn1Q61PXv5MQ/edit

其中粗体文本是表单 ID。

原来的:

提前道歉,因为我不是经验丰富的剧本作家,可能会使用不正确的术语。

但是 - 我在谷歌搜索如何在 Google 表单中查找表单 ID 元素时找到了 这个问题的答案 ,但答案很旧,我的问题也很相似。我尝试搜索“Inspect Element”数据,但仍然无法识别 ID 属性。我尝试搜索代码:

  • 数据项-id =“##########”,或
  • aria-描述的=“i.desc.########## i3”
  • 为=“entry_XXXXXXX”

还是没有运气。有人对查找表单 ID 有更新的建议吗?作为参考,我使用下面的脚本作为起点。这是取自不同/旧的形式,但功能相似,所以我希望利用它。我正在尝试查找我的表单 ID(例如第 6-7 行中的 ID)。

 /**
 * @NotOnlyCurrentDoc
 * Limit OAuth scope to only current spreadsheet rather than all sheets in drive
 */ 

function onSubmit(e) {
  var form = FormApp.openById('1eccBQ7Bs34Z54keGHeR8HDXmiP1UqxMi9vSDWNv6zgs');

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');

   
  var data = sheet.getDataRange().getValues();
  //var urlCol = 26;
  var responses = form.getResponses();
  var timestamps = [], urls = [], resultUrls = [];

  for (var i = 0; i < responses.length; i++) {
    timestamps.push(responses[i].getTimestamp().setMilliseconds(0));
    urls.push(responses[i].getEditResponseUrl());
  }
  for (var j = 1; j < data.length; j++) {

    resultUrls.push([data[j][0]?urls[timestamps.indexOf(data[j][0].setMilliseconds(0))]:'']);
  }
  sheet.getRange(2, urlCol = 27, resultUrls.length).setValues(resultUrls);  

  return resultUrls;
};
Run Code Online (Sandbox Code Playgroud)

Rub*_*bén 6

正如问题正文中提到的那样,表单 ID 可以在 Google 表单 URL 中找到,但 OP 没有提到该 URL 是编辑 URL,而不是“查看”URL。

表单所有者还可以使用网络浏览器开发工具通过搜索data-redirect-url已分配表单 URL 来查找表单 ID:

data-redirect-url="https://docs.google.com/forms/d/form_id/edit?usp=redirect_edit_m2"
Run Code Online (Sandbox Code Playgroud)

正如 OP 所提到的,表单 ID 介于https://docs.google.com/forms/d/和 之间/edit

除了查看表单 URL 之外,还可以使用 Google Apps 脚本检索表单 ID。更简单的方法是使用类似于以下的有界脚本:

function getActiveFormID(){
  const id = FormApp.getActiveForm().getId();
  console.log(id);
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用驱动器服务。以下示例假设只有一个名为“My Form”的文件:

function getFormId(){
   const id = DriveApp.searchFiles(`title contains "My Form"`).next().getId();
   console.log(id);
}
Run Code Online (Sandbox Code Playgroud)


小智 -2

从 Google Chrome 打开表单(查看模式,而不是编辑模式)。
按 F12。

在 Elements 窗口中,展开<body>

扩张<script type = "text/javascript" nonce> == $0

你应该看到:

var FB_PUBLIC_LOAD_DATA以及您在表单上创建的每个元素及其各自的元素 ID。