【问题标题】:Recurring generic error message Google Apps Script重复出现的一般错误消息 Google Apps 脚本
【发布时间】: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


【解决方案1】:

感谢 Rubén,我能够解决我的问题。在我的脚本中,我使用了不正确的表单 ID。运行脚本以从 Google 表单获取编辑响应 URL 时,您必须在特定表单的编辑模式下查看编辑表单 URL。从此编辑 URL 中提取表单 ID,而不是查看 URL 或共享 URL 等。这是您的脚本使用正确权限访问正确表单的唯一方法。再次感谢 Rubén 和所有其他提供帮助的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 2018-06-15
    • 1970-01-01
    相关资源
    最近更新 更多