Google Calendar API (4/6)
作成:2010-04-27 12:01
更新:2010-05-11 16:12
更新:2010-05-11 16:12
■コールバック関数の処理について
では、引き続いてコールバック関数での処理について説明していきましょう。コールバック関数では、結果をまとめたオブジェクトが引数に渡されます。ここでは、このオブジェクトから必要な情報を取り出していきます。
5.引数からエントリーを取得する
エントリーの情報は、結果オブジェクトの「feed」プロパティに用意されている「entry」プロパティで得ることができます。このentryには、各エントリーのオブジェクトをひとまとめにした配列が用意されています。
forを使い、この配列から順にオブジェクトを取り出していきます。後は、この取り出されたオブジェクトから必要な情報を取得していくわけです。
6.エントリーから必要な値を取り出し処理する
ここでは、タイトルと開始日時の情報を取り出して表示しています。これらの値の取得方法を以下に整理します。
・タイトルの取得
まずタイトルのテキストを取り出しています。タイトルは「getTitle」というメソッドで取得できます。ただし、これで得られるのはテキストではなく、Google独自のオブジェクトです。ここから、更に「getText」メソッドを呼び出し、タイトルのテキストが取り出せます。
・開始日時の取得
日時に関する情報は「getTimes」というメソッドで取り出すことができます。ただし、これはDateTimeオブジェクトの配列になっています。ここでは、配列の一番最初の値を取り出し、そこから「startTime」というプロパティを参照して開始日時を取得しています。同様に「endTime」で終了日時を得ることもできます。(ただし、イベントによっては設定されていない場合もあるので注意が必要です)
最後に、例外時に呼び出される関数についても触れておきましょう。service.getEventsFeedを呼び出した際、例外時に実行する関数を指定しました。この関数では、発生した例外に関する情報をまとめたオブジェクトが引数として渡されます。この値を表示するなり何なりして例外に対処するとよいでしょう。
5.引数からエントリーを取得する
エントリーの情報は、結果オブジェクトの「feed」プロパティに用意されている「entry」プロパティで得ることができます。このentryには、各エントリーのオブジェクトをひとまとめにした配列が用意されています。
forを使い、この配列から順にオブジェクトを取り出していきます。後は、この取り出されたオブジェクトから必要な情報を取得していくわけです。
6.エントリーから必要な値を取り出し処理する
ここでは、タイトルと開始日時の情報を取り出して表示しています。これらの値の取得方法を以下に整理します。
・タイトルの取得
まずタイトルのテキストを取り出しています。タイトルは「getTitle」というメソッドで取得できます。ただし、これで得られるのはテキストではなく、Google独自のオブジェクトです。ここから、更に「getText」メソッドを呼び出し、タイトルのテキストが取り出せます。
・開始日時の取得
日時に関する情報は「getTimes」というメソッドで取り出すことができます。ただし、これはDateTimeオブジェクトの配列になっています。ここでは、配列の一番最初の値を取り出し、そこから「startTime」というプロパティを参照して開始日時を取得しています。同様に「endTime」で終了日時を得ることもできます。(ただし、イベントによっては設定されていない場合もあるので注意が必要です)
※例外用関数について
最後に、例外時に呼び出される関数についても触れておきましょう。service.getEventsFeedを呼び出した際、例外時に実行する関数を指定しました。この関数では、発生した例外に関する情報をまとめたオブジェクトが引数として渡されます。この値を表示するなり何なりして例外に対処するとよいでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
5.引数からエントリーを取得する var entries = result.feed.entry; for (var i = 0; i < entries.length; i++) { var entry = entries[i]; 6.エントリーから必要な値を取り出し処理する var title = entry.getTitle().getText(); var times = entry.getTimes(); res += (i + 1) + ": " + title + " (" + times[0].startTime + ")<br />"; ※例外用関数 function handleError(error) { document.getElementById("view").innerHTML = error; }
※関連コンテンツ