1

JSON Web API を使用してサイトから StarCraft2 トーナメントのリストを取得し (UrlFetchApp を使用)、対応する Google カレンダー イベントをさまざまなカレンダー (地域/リーグの組み合わせごとに 1 つのカレンダー) に作成する Google Apps スクリプトがあります。

私はトリガーを 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 の可用性に問題があるように見えますが、ダッシュボードにはサービスの問題は示されません。

私のプロジェクトキーは次のとおりです。MWhWmFSrL1dK3RJui6Aphb12cA4KNgw7R

4

1 に答える 1

2

私はCalendarAppを使用する多くのスクリプトを持っていますが、手動モードまたは時間トリガーのいずれであっても、それらの実行で時折エラーが発生します.トラフィックが多すぎると、このサービスはエラーの対象になるようです.速度が高いか、インターネット接続が遅すぎます (数か月前、私のオフィスのインターネット接続は非常に貧弱で、スクリプトを使用すると多くのエラーが生成されましたが、自宅から実行した場合はそうではありませんでしたが、現在は状況が改善されています。同じスクリプトがどこでもスムーズに実行されます)。

とにかく、本当の原因が何であれ (Google のエンジニアだけが答えることができました)、私が使用した解決策は、接続を数回試行する try-catch ループにカレンダー呼び出しを配置することでした。それ以来、エラー通知はもうありません。 .

まだ変更していない別のスクリプトでは、時々エラーが発生しますが、重要な情報に関係していないので気にしません...今確認したばかりで受け取っていないことに注意してください5日間の通知!(カレンダーには良い季節に違いない ;-)

于 2012-12-13T18:25:16.250 に答える