我有一个Google Apps脚本,该脚本使用JSON网络API从网站获取星际争霸2锦标赛列表(使用UrlFetchApp),并在各种日历中创建相应的Google日历活动(每个区域/联盟组合一个日历)。
我有一个设置为每5分钟一次的触发器,它会立即通过电子邮件发送错误消息,如果脚本正常完成并添加了任何事件或遇到我发现的任何错误,它也会通过电子邮件发送给我。
大多数情况下,没有必要进行任何更改(我使用ScriptDb缓存JSON信息以避免调用CalendarApp,除非我需要)并且脚本是静默的。但是,一夜之间我收到了几封包含这些消息的电子邮件:
The resource you requested could not be located. (line 154)
Service error: CalendarApp: Error body {font-family: arial,sans-serif}
G o o g l e Error Cannot access the calendar you requested (line 155)
TypeError: Cannot call method "getEvents" of null. (line 155)
第154,155和156行是:
var calendar = CalendarApp.getCalendarById(calendars[region][league]);
var events = calendar.getEvents(new Date(1900, 1, 1), new Date());
events.forEach(function (event) { event.deleteEvent(); });
在脚本的这一点上,我已经尝试添加任何新事件,并且我将查询每个日历以删除过去发生的任何事件。
这些错误似乎是CalendarApp可用性的问题,但Dashboard并未表明该服务存在任何问题。
我的项目密钥是:MWhWmFSrL1dK3RJui6Aphb12cA4KNgw7R
答案 0 :(得分:2)
我有很多使用CalendarApp的脚本,所有这些脚本在执行时偶尔会出现错误,无论是手动模式还是时间触发,似乎(但我知道这是一种经验感觉)这个当流量太高或互联网连接速度太慢时,服务会出错(几个月前我的办公室的互联网连接非常糟糕,而且用于生成很多错误的脚本 - 而它从家里执行时没有 - 现在情况更好,相同的脚本在任何地方都能顺利运行。)
无论如何,无论真正的原因是什么(并且只有Google工程师可以回答),我使用的解决方案是将Calendar调用放在try-catch循环中,尝试连接几次,从那时起我就没有了错误通知。
在另一个我没有改变的剧本中,我不时会收到错误,但由于它不涉及重要信息,我不介意......请注意我刚刚检查过并且我没有5天内不会收到任何通知! (必须是日历的好季节; - )