如何在 google 脚本中取回当前 google 表单响应的 URL?
How can I get back the URL of the current google forms response in google scripts?
所以我正在 google 脚本中开发一个 discord webhook,当有人提交表单时 returns 问题和这些问题的答案。我想获得当前或那个时间的 hyperlink 最新响应,但是当我阅读大量文档时,我找不到 returns 这个 link.
这是有效的代码,但没有我上面提到的那个东西:
function onSubmit(e) {
var form = FormApp.getActiveForm();
var allResponses = form.getResponses();
var latestResponse = allResponses[allResponses.length - 1];
var response = latestResponse.getItemResponses();
var answerarray = [];
var questionarray = [];
for (var i = 0; i < response.length; i++) {
var question = response[i].getItem().getTitle();
var answer = response[i].getResponse();
try {
var parts = answer.match(/[\s\S]{1,1024}/g) || [];
} catch (e) {
var parts = answer;
}
if (answer == "") {
continue;
}
for (var j = 0; j < parts.length; j++) {
answerarray.push(parts[j]);
questionarray.push(question);
}
}
你能帮帮我吗?
根据评论更新
如果您正在尝试获取 URL 到 link 的 a screen like this based on an individual response ID, that is not possible currently. Here is a list 的所有响应属性和方法。
但是,确实没有必要访问该页面。您可以使用 google 应用脚本从该屏幕访问所有信息。如果你真的想要一个 link 到用户的响应,你可以在提交时生成一个 google sheet 或文档,然后用你想要的任何格式填写它(或者让它模仿 pre -建造了一个)。
原答案
由于您将 google sheets 标记为问题的一部分,我猜测您正在寻找 Spreadsheet 的 URL 或也许是提交时间?
传播sheetURL
如果您的表单连接到传播sheet,那么您可以使用以下代码获取 form
变量的 URL:
//You could combine for one line, but broken out to illustrate
var theId = aForm.getDestinationId();
var theSpreadsheet = SpreadsheetApp.openById(theId);
var theURL = theSpreadsheet.getFormUrl();
最后回复时间
无需点差即可获得sheet。如果你使用相同的变量 answer
你应该擅长:
var theTime = answer.getTimestamp();
所以我正在 google 脚本中开发一个 discord webhook,当有人提交表单时 returns 问题和这些问题的答案。我想获得当前或那个时间的 hyperlink 最新响应,但是当我阅读大量文档时,我找不到 returns 这个 link.
这是有效的代码,但没有我上面提到的那个东西:
function onSubmit(e) {
var form = FormApp.getActiveForm();
var allResponses = form.getResponses();
var latestResponse = allResponses[allResponses.length - 1];
var response = latestResponse.getItemResponses();
var answerarray = [];
var questionarray = [];
for (var i = 0; i < response.length; i++) {
var question = response[i].getItem().getTitle();
var answer = response[i].getResponse();
try {
var parts = answer.match(/[\s\S]{1,1024}/g) || [];
} catch (e) {
var parts = answer;
}
if (answer == "") {
continue;
}
for (var j = 0; j < parts.length; j++) {
answerarray.push(parts[j]);
questionarray.push(question);
}
}
你能帮帮我吗?
根据评论更新
如果您正在尝试获取 URL 到 link 的 a screen like this based on an individual response ID, that is not possible currently. Here is a list 的所有响应属性和方法。
但是,确实没有必要访问该页面。您可以使用 google 应用脚本从该屏幕访问所有信息。如果你真的想要一个 link 到用户的响应,你可以在提交时生成一个 google sheet 或文档,然后用你想要的任何格式填写它(或者让它模仿 pre -建造了一个)。
原答案
由于您将 google sheets 标记为问题的一部分,我猜测您正在寻找 Spreadsheet 的 URL 或也许是提交时间?
传播sheetURL
如果您的表单连接到传播sheet,那么您可以使用以下代码获取 form
变量的 URL:
//You could combine for one line, but broken out to illustrate
var theId = aForm.getDestinationId();
var theSpreadsheet = SpreadsheetApp.openById(theId);
var theURL = theSpreadsheet.getFormUrl();
最后回复时间
无需点差即可获得sheet。如果你使用相同的变量 answer
你应该擅长:
var theTime = answer.getTimestamp();