Google Apps脚本:很抱歉,发生了服务器错误。请稍等一下再试一次

时间:2013-09-14 17:48:03

标签: google-apps-script google-sheets

我收到341封错误通知电子邮件,内容如下:

  

很抱歉,发生了服务器错误。请稍等一下再试一次。

通知电子邮件仅说明发生问题的功能名称。

脚本现在没有运行。任何尝试在脚本中运行任何函数都会产生上述错误。我使用脚本添加到电子表格中的自定义菜单也消失了。我发现无法调试脚本,因为脚本上的每个操作都会给我上述错误。

修改

以下是错误发生的功能

function crunchEmails() {
  var sheet   = SpreadsheetApp.getActiveSheet();
  var gLabel  = sheet.getRange("gmailLabel").getValues();


  // check the current SpreadSheet for limits and create a 
  // new SpreadSheet if limits are approaching
  checkSpreadSheet();


  var gFolder = sheet.getRange("outputFolderName").getValues();
  var gSpreadSheetName = sheet.getRange("outputSpreadsheetPrefix").getValues();
  var threadsPerSearch  = sheet.getRange("threadsPerSearch").getValues(); 

  // Number of emails per search:
  var threads = GmailApp.search("-label:" + gLabel, 0, threadsPerSearch); 

  for (var x=0; x<threads.length; x++) {

    var messages = threads[x].getMessages();

    // getting null...a thread without messages is weird
    if(messages != null) {
     for (var y=0; y<messages.length; y++) {

        updateSpreadSheet(messages[y]);

      }
    }

    GmailApp.getUserLabelByName(gLabel).addToThread(threads[x]);
  }
}

我被困在中间,不知道为什么会发生这种情况?

有人可以指导解决问题吗?

4 个答案:

答案 0 :(得分:10)

解决了问题。

问题在于其他一些功能中的字符串替换功能。我使用带有正则表达式的字符串替换函数作为替换函数的输入。正则表达式不正确,因为我得到上述错误。

这真的很奇怪,至少GAS应该给出一些正确的错误。

答案 1 :(得分:2)

  • 脚本->资源->高级google服务->启用Drive API
  • 单击下面的消息“ Google Cloud Platform API仪表板”以打开脚本的云项目。
  • 选中项目后,在搜索栏中搜索“ Drive API”->“启用”,对“ Google Drive API”进行相同的操作。

完成后,脚本中的DriveApp功能不再出现“我们很抱歉服务器错误”。

答案 2 :(得分:0)

Hemaka Raveen 提供的答案似乎是正确的,它帮助我解决了同样的问题(当我的一个函数想要访问未为我启用的 API 时出现这种情况)。

但是在 2020 年 Google 为 Apps Script 引入了新的代码编辑器,Hemaka Raveen 的回答与旧版编辑器有关。要在新编辑器中启用 Google Drive API,请打开您的脚本,找到左侧的服务标签,点击+图标,选择Drive API strong> 并点击添加

请记住,在此处启用它只是过程的一部分。您必须在 Google Cloud Platform 中启用它,但该步骤与 Hemaka Raveen 的描述相同。

答案 3 :(得分:0)

这似乎是一条一般性的“我不知道出了什么问题”的错误消息。 在我的情况下,我添加了一个库,使用该库的脚本的其他用户收到了这条消息,无论调用什么函数或触发触发器(甚至 onOpen())

当我将库部署为“版本 1”时解决了这个问题。