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 件のコメント:

コメントを投稿