我的Google脚本失败了。授权问题?建议修理吗?

时间:2017-03-06 17:29:42

标签: google-apps-script authorization

下面的deleteOldGmail()函数每周运行一次。它在几年内没有问题,然后在2016年的某个时候(10月我认为)我开始收到如下所示的失败消息,即使我对脚本进行了零更改。失败通知表明'执行该操作需要'deleteOldGmail授权';但是,我已经在脚本中执行了每个函数来检查/重新建立授权权限,当我运行每个函数时,我得到零错误。

失败通知:

Google Apps脚本失败摘要:deleteOldGmail< - 这位于“主题”字段中。

错误讯息: 您的脚本deleteOldGmail最近未能成功完成。故障摘要如下所示。要配置此脚本的触发器,或更改接收未来失败通知的设置,请单击此处。

启动功能错误消息触发结束 2/27/17 12:20 AM deleteOldGmail授权是执行该操作所必需的。基于时间的2/27/17 12:20 AM 此致 Google Apps脚本

根据此论坛中的建议,我已单独执行每项功能,以解决与脚本授权权限相关的可能问题。我得到零运行时错误;一切似乎都运行正常。

功能描述: 1)deleteOldGmail调用另外两个函数:deleteOldInboxMsgs和deleteOldPromotionMsgs。简而言之,这些脚本是为了删除旧电子邮件而编写的。 “mySearch”中的过滤器用于确保我不会删除旧电子邮件,如果我将其发送给自己,或者邮件中包含关键字,如“许可”,“注册”,“确认”等。

2)当每个函数完成时,它的最后一个动作是发送一条消息,指示'函数已执行'。我得到所有这些消息没有错误。这些脚本似乎在每个星期一午夜后成功运行;但是,错误摘要会在每个星期一晚上7:28到达。

完整脚本如下所示。 abc.xyz.com取代了脚本中使用的真实电子邮件地址。

function deleteOldGmail() {
  deleteOldInboxMsgs();
  deleteOldPromotionMsgs();
  GmailApp.sendEmail("abc@xyz.com", "deleteOldGmail function completed...", "...the code for this function is in the googleScripts folder of your Google Drive");
}

function deleteOldInboxMsgs() {
  var mySearch = "is:inbox is:unread older_than:700d -from:me -confirmation -account -license -registrar -registration  -'serial number'";
  var batchSize = 100; // Process up to 100 threads at once
  GmailApp.sendEmail("abc@xyz.com", "deleteOldInboxMsgs function executed", " ");
  while (GmailApp.search(mySearch, 0, 1).length == 1)
  {
    GmailApp.moveThreadsToTrash(GmailApp.search(mySearch, 0, batchSize));
  }  
}


function deleteOldPromotionMsgs() {
  var mySearch = "older_than:180d category:promotions -from:me -confirmation -account -license -registrar -registration -'serial number'";// add promotion msgs to the list
  var batchSize = 100; // Process up to 100 threads at once
  while (GmailApp.search(mySearch, 0, 1).length == 1)
  {
    GmailApp.moveThreadsToTrash(GmailApp.search(mySearch, 0, batchSize));
  }  
  GmailApp.sendEmail("abc@xyz.com", "deleteOldPromotionMsgs function executed", " ");

我很难找到实际上失败的东西。除了运行每个功能之外,还有其他方法可以重新建立或验证“授权”吗?有什么建议?

谢谢,

迈克

1 个答案:

答案 0 :(得分:2)

上周来自Google Cloud Status Dashboard:

  

"上次更新报告无变化。我们仍在积极努力解决身份/身份验证问题。当报告取得重大进展时,将会有未来的更新。

     

总结;一些长期存在的OAuth令牌无意中被无效。 "

我自己不得不重新授权我的几个长期运行的脚本。