2010年11月15日月曜日

Google Apps Script のイベント削除のバグ?

Google Apps Scriptの練習として、まずはカレンダーにイベント作成&削除という基本的なことから試してみた。

デフォルトカレンダーにイベント作成し、すぐに削除するスクリプトを作成した。
エラーなく動作しているようだが、作成したイベントをすぐに削除するようにしたので、
「一旦イベントが登録されてすぐに削除された」
のか、
「登録も削除もされずにエラー表示もされなかった」
のか区別がつかない。そこで削除する前にメッセージボックスを表示するようにした。

メッセージボックスが表示されているときにカレンダーを確認するとイベントが作成されていることを確認できる。そこでメッセージボックスのOKボタンを押下すると、イベントが削除されるはずが、、、

なぜかエラーが表示される。

"Service error: Calendar : If-Match or If-None-Match header or entry etag attribute required"

いろいろ試してみるとdeleteEventやsetTimeなどの前にmsgBoxを呼び出すとエラーになるようだ。


function myFunction() {
// デフォルトのカレンダーを取得
var MyCalendar = CalendarApp.getDefaultCalendar();

// 現在の日時を取得
var d1 = new Date();

// 5分後を求める
var d2 = new Date;
d2.setTime(d1.getTime()+5*60*1000);

// イベント作成
var evt = MyCalendar.createEvent( "テストイベント", d1, d2 );

Browser.msgBox(d1.toLocaleString());
// Browser.msgBox()後にevt.deleteEvent()やevt.setTime()を
// 行うと以下のエラーが表示される。
// "Service error: Calendar : If-Match or If-None-Match
// header or entry etag attribute required"

// イベント作成
evt.deleteEvent();
};

0 件のコメント:

コメントを投稿

質問、要望、指摘など書いていただいてもよいですが、対応できるとは限りませんのでご了承ください。私に対するものも含め他の人を嫌な気分になるようなコメントは避けてください。