如何在 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();