【发布时间】:2018-10-09 14:56:36
【问题描述】:
编辑:不确定这是否重要,但我正在使用 G Suite for Nonprofits。END EDIT:::
第一次尝试手动运行此脚本时,我不断收到此错误消息:
很抱歉,发生服务器错误。请稍等,然后重试。 (第 2 行,文件“代码”))。
我已经保存并授权了它的权限。我只是尝试执行脚本以获取所有现有响应的编辑 URL。
没有与此相关的触发器。该脚本旨在从 Google 表单中获取编辑响应 URL。在表单中启用了“提交后编辑”,并且关于谁可以完成表单,它设置为公开(这并不重要,因为我是表单的所有者)。
我在许多其他项目中以这种确切的形式使用此脚本,完全没有问题。我还为此任务尝试了一个我知道有效的不同脚本,但返回了相同的错误消息。错误消息总是引用带有表单 ID/URL 的代码行。我已经验证了表单 ID。感谢您的帮助。
function assignEditUrls() {
var form = FormApp.openById('some id');
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses 1');
var data = sheet.getDataRange().getValues();
var urlCol = 6;
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, resultUrls.length).setValues(resultUrls);
}
【问题讨论】:
-
再次检查您是否使用了“正确”的表单 ID。如果您需要进一步的帮助,请描述您如何获得它。
-
@Rubén,除了 URL 中明显的表单 ID 之外,还有其他表单 ID 吗?我似乎确实记得几个月前必须为不同的脚本找到某种替代表单 ID,但现在我不记得如何或为什么需要这样做了。
-
@I'-'I 你实际上可能是正确的。我之前遇到过错误,只有通过这样做才能解决。
-
有多个网址(编辑、查看、分享等),但并非所有网址都显示相同的 id
-
@Rubén 哇,你是对的。那行得通。我以为我使用的是编辑 URL 中的表单 ID。原来我以某种方式使用了视图 URL 中的表单 ID。我知道 URL 是不同的,但我什至从未注意到 ID 也发生了变化。问题解决了。非常感谢。
标签: google-apps-script google-sheets google-forms