いよいよ今回で最終回です。
最終回の仕上げとして,Greasemonkeyの通信機能を利用して,これまで作成したカレンダアプリケーションにGoogle Calendar上の公開カレンダの情報を取り込む機能を追加していきます。
そして最後に,読者の皆様への練習問題として,更なる追加機能のアイデアをいくつか挙げたいと思います。
Google Calendarの予定情報の取り込み
Google CalendarのWeb API
Google Calendarは,皆さんご存知のGoogleが提供しているWeb上のカレンダアプリケーションサービスです。Google Calendara data APIと呼ばれるWeb APIも公開されていて,そのWeb APIを使うことで,予定情報の追加,参照,修正,削除が可能です。AtomをベースとしたXML形式のメッセージフォーマットが使われているのですが,参照についてはJavaScriptで扱いやすいJSONの形式でもカレンダの情報を取得できるようになっています。今回はこの機能を利用したいと思います(詳細な仕様についてはこちらを参照ください)。
参照用のURLですが,その取得にちょっとだけ手間がかかります。その手順を簡単に説明します。
(1) Google Calendarを開く
(2) 参照したいカレンダのメニューを開き,「カレンダ設定」を開く
(3) カレンダ設定画面で「このカレンダーを共有」タブを開く
※指定画像がありません※
(4) 「すべてのユーザと共有」の項目を「このカレンダーのすべての情報を一般に公開(検討の対象となる)」に設定
(5) 再びカレンダ設定画面を開き,「カレンダーのアドレス」の項目のXMLボタンをクリック
(6) 表示されたURLをコピー
コピーしたURL例
http://www.google.com/calendar/feeds/gordon.timothy.nathanson%40gmail.com/public/basic
- (7) 末尾を変換
末尾の /basic を /full?alt=json に置き換えます。
置き換えたあとのURL例
http://www.google.com/calendar/feeds/gordon.timothy.nathanson%40gmail.com/public/full?alt=json
これで各予定の開始・終了日時や場所の情報をJSON形式で取得できます。
なお,予定情報を公開したくない場合は公開用に新たにカレンダを追加するとよいと思います。
また,自分で公開用カレンダを作成しなくても,公開されているカレンダを検索して,自分のカレンダとして取り込めば同じ手順でURLを取得することができます。

