Google Calendarを使った日記システム開発(その1)

投稿者: | 2006年12月3日

手軽に入力できる日記システムが欲しいなぁと思い、データの持ち方とかシステムのあり方とかをつらつらと考えていた。
思いついたら即入力できたほうがいいだろうということで、ネットにさえつながっていれば使えるWebアプリが良いだろう。
となると、データベース環境もどこかに必要になるのだが、そのためにサーバを立てたりするのは面倒。
簡単に済ませたいなぁと考えた時にひらめいたのが、
GoogleCalendarを活用したらどうかということだ。
Calendarデータに外部からアクセスする仕組みはAPIで提供されているし、何とかなりそうだと思い、とりあえず環境作りを作り始めた。


Google CalendarはXMLでデータをやり取りすることになるので、簡単に扱うにはどうするかということでいろいろ調べると、
PEARにあるXML_Serializerというライブラリが使えそうである。
まだ、BETA版ということで、まずベータ版をインストールできるように、

% pear config-set preferred_state beta

とした。
次に、

% pear install XML_Serializer

でインストール。(「XML_Parser」と「ML_Util」のインストールが必要。)
下のサイトから「GData APIとの通信を処理するシンプルなクラスライブラリ」をいただく。
Google Calendar APIの基礎
これのサンプルを実行すると、あっさりと動作した。デフォルトのカレンダーの予定を表示することができた。
ソースを見ると

header(‘Content-Type:application/xml;charset=UTF-8’);
exit($feed);

となっており、返ってきたfeedデータ(XML形式データ)をただ表示しているだけだ。
このデータをいろいろ編集するだけで、表示処理は簡単に実現できそうだ。
後は、入力したデータをCalendarに登録するだけだ。
他のカレンダーの表示はどうやるのか少し悩んだが、ライブラリの google/calendar.php の中の$feedUrlを変更したら他のカレンダーも読み込むことができた。

var $feedUrl = ‘http://www.google.com/calendar/feeds/default/private/full’

このURLは、Google Calendarのそれぞれのカレンダーの設定画面で、個人用URLで取得できる XMLのURLである。
このサンプルでは、このfeedurlは固定になっているが、これを指定できるように変えることは簡単だ。
これで、日記用のカレンダーを作成し、そこに日記データを溜め込んでいく見通しが立った。
基本的な処理が見えるサンプルを作成してみよう。