[PHP]Zend Google Data Client Libraryで gCal APIs を使う[その1]
2007年09月10日(月)10:36|那須
那須です。
先日、フラッツ第2回Hackathonを実施しました。1日使って、個人またはチームで、サービスを1つ作るというものです。私は、社内ツールの1つを開発しました。Google Calendar からデータを取り込んで、社内の業務日誌として使える形式に変換するというものです。
今回のHackathonでは、Google Calendar APIs を PHPで使ってみました(Zend Google Data Client Libraryを使用)ので、これから何回かに分けて、使用感を書いていきたいと思います。
今回は、Google Calendar APIs の簡単な説明と、APIを利用するための準備を説明したいと思います。
Google Calendar APIs とは
ご存知のとおり、Googleは現在多彩なWebサービスを提供しています。これらのサービスを外部から利用するツールとして Google APIs があります。Google Calendar APIs はそのうちの1つで、その名の通り、Google Calendar にある情報を APIを通して予定を取得したり、逆にGoogle Calendarに予定を書き込んだりすることができます。
Google Calendar APIs は、サービスに接続すると、GDataと呼ばれるXML形式で結果を返します。例えば、自分のカレンダー(マイカレンダー)を全て取得する場合
- http://www.google.com/calendar/feeds/default/owncalendars/full
というURLにアクセスします(Google Calendarにログインしている必要があります)。実際にブラウザでアクセスすると、XMLがダウンロードできるかと思います。このXMLを解析(パース)して、自作のアプリケーションで利用する事になります。
PHPでの利用
以上のように、自分で直接URLを入力して GDataを取得してもいいのですが、その場合GDataの構造を理解していないと、必要な情報がどこにあるのかがわからなくなります。そこで今回は、Zendが提供しているZend Google Data Client Library(長いのでZend GData CLと略します。一般的ではないので注意してください)を利用しました。
Zend GData CL は、Google APIsの主要な機能をライブラリ化しています。これを使うことで、直接GDataを参照しなくても、XMLを解析した結果を PHPの配列/オブジェクトとして使えるようになっています。
Zend GData CLを使ってみる
まず Zend GData CL の初期設定を行います。コチラからパッケージをダウンロードし、展開します。
展開すると、次のようなファイル/ディレクトリができていると思います(ZendGdata-1.0.1 2007/08/16現在)。
- LICENSE.txt
- README.txt
- VERSION.txt
- demos
- documentation
- library
- tests
このうち、demosは、サンプルコードのディレクトリになります。階層がいくつかありますが、最下層まで移動すると、いくつかのPHPファイルが見つかると思います。今回は、Google Calendar APIs を使うため、Calendar.php を実行してみます。
まず、Webアクセス可能なディレクトリにdemos以下をコピーします。次に Calendar.php から呼び出している一連のライブラリを読み込む準備をします。Calendar.phpの1行目に次のような行を加えてみてください。
ini_set(‘include_path’, ini_get(‘include_path’).”:[Zend GData CL のライブラリパス]/library”);
[Zend Gdata CL のライブラリパス]は適宜変更してください。変更を加えたら、保存しブラウザから実行します。
Please login to your Google Account.
以上のような文字列のリンクが表示されれば成功です。リンクを辿っていくと、マイカレンダーの一覧が表示されるのが確認できると思います。
最後に
いかがでしたでしょうか。物足りないと感じる方もいると思いますが、あまり APIなどに慣れていない方の参考になればと思います。
次回からは、もう少し具体的な話に入りたいと思います。