有没有办法以编程方式为 google 表单获取可共享的 link?

Is there a way to programmatically get a shareable link for google form?

有没有办法以编程方式为 google 表单获取可共享的 link? 我已经使用 php api 复制了一个 google 表单文件,现在我想得到一个可共享的 link 到这个表单。

Google 表单的可共享 URL 形式为

https://docs.google.com/forms/d/{id}/viewform

其中 id 是与包含表单的文件关联的 ID。由于你已经复制了文件,你有一个对应的文件对象,所以使用获取它的id的方法,并将它包含在URL.

简答

如果您已经能够获得表单,那么您已经拥有表单 ID,并且可以构建您需要的 URL。

说明

有两种基本的Google形式URLs:

  • 一个编辑表格
  • 另一个查看实时表格并提交回复。

它们之间的区别在于第一个包含 /edit 而另一个包含 /viewform

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

1os2J7uSWpBYDvbFViL1cmMaIPXD1QDGSwiWfODiKINU是文件id。

无论如何,您可以使用 Google Apps 脚本来获取那些 URL,但首先您应该获取一个表单对象。如果您使用 Google Apps 脚本绑定项目到电子表格或表单,首先您应该获取活动 spreadsheet/form 然后使用相应的方法。

您也可以使用 Google Drive REST API 来获取与表单对应的文件 ID。

如果您已经有一个 Google 表单 URL 它包含表单 ID。您使用 URL 或表单 ID 打开表单,然后获取您需要的 URL,但这可能

通过这种方式,您可以获得给定 sheet:

的附加表格
function getFormUrl(sheetName) {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName(sheetName);
  return sheet.getFormUrl();
}