見出し画像

GAS|短時間に作成したカレンダーまたはカレンダーの予定の数が多すぎます。しばらくしてからもう一度お試しください。|createEvent|Calendar|CalendarApp|Google Apps Script|開発裏話

マンガポスト日本版」では、Google ドライブ内に保存している「コミックス発売日情報」を参照して、その日付を基に毎日自動配信(ツイート)しています。

以下の通り、Google カレンダーへ「コミックス販売日情報」をイベントとして自動登録しているのですが、その実装の過程で、「短時間に作成したカレンダーまたはカレンダーの予定の数が多すぎます。しばらくしてからもう一度お試しください。」というエラーが発生してしまいました。

GAS では、Google カレンダーの使用について、以下の注意事項が記載されています。

Service invoked too many times: Calendar. This indicates that the script called the given service too many times in one day.
Service invoked too many times in a short time: Calendar. Try Utilities.sleep(1000) between calls. This indicates that the script called the given service too many times in a short period.

今回、実装時にエラーを発生させたのは、後者が原因でした。迂闊にも、for 文で連続的に Google カレンダーへイベントを登録してしまいました。まさに「Service invoked too many times in a short time」です。

1,000 件強あたりでエラーが発生し、その後、「しばらくしてからもう一度お試しください。」というメッセージが表示されたので、それに従って、24 時間を経過させましたが、エラーは一向に解決せず、カレンダーの制御が一切できなくなってしまいました

ふと、何気なく思いついて、イベントの description の内容を実装変更して実行してみたら(日付とタイトルはどうしても変更する訳にはいかなかったので)、なんと、その瞬間からエラーが発生しなくなりました。

何故、解決できたのか、今でも不明ですが、一度、エラーを発生させたイベントと同等、もしくは、酷似した内容ではダメで、そこから大きく実装を変更したのが解決の糸口になったのかもしれません。

以下に、類似の問題でお困りの方もいらっしゃるようです。上記をコメントしておきました(CUTBOSS)。

GAS ではなく、以下の通り、Google カレンダーそのものの制限も存在しますので、併せて注意が必要です。

マンガポスト日本版

マンガポスト日本版の Twitter 公式アカウントです。
漫画(まんが)・コミックの新刊情報を毎日配信中!

コーヒーブレイク

中学生の超能力少女が人知れず空を飛び、人助けや事件解決に大活躍!さわやかな正義感と思春期のドキドキがいっぱいのSFジュブナイル。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?