Google Calenderを利用した会議室予約システム
今回は前編・後編で簡単な会議室予約システムを作ります。Zend_Gdata_Calendarクラスを使用してGoogle Calendarサービスにアクセスし、予約の参照、登録、変更を行えるようなものです。
前編である今回は認証とカレンダーリストの取得について解説します。カレンダーの一覧を取得して表示させるものです。一つのカレンダーリストを一つの会議室と見立てています。
サンプルコード(抜粋)
以下が、今回のサンプルコードの抜粋になります。詳細は後述していきます。とりあえず動かしたい方はサンプルコードをダウンロードし、認証部分のアカウント(メールアドレス)とパスワードを自分のGoogleアカウントに書き換えて実行してみてください。
<?php
require_once 'Zend/Loader.php';
// Zend Frameworkのクラス自動読込
Zend_Loader::registerAutoload();
// ClientAuth 認証用のパラメータ【①】
$user = "【ユーザーアカウント】";
$pass = "【パスワード】";
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
// 認証済みHTTPクライアント作成【②】
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
// Calendarサービスのインスタンス作成【③】
$serviceCal = new Zend_Gdata_Calendar($client);
// カレンダーリストの取得【④】
try {
$listFeed= $serviceCal->getCalendarListFeed();
} catch (Zend_Gdata_App_Exception $e) {
echo "エラー: " . $e->getMessage();
}
echo "<h1>会議室予約ページ</h1>";
// カレンダーリストごとに処理【⑤】
foreach ($listFeed as $list) {
// タイトル(会議室名)の取得【⑥】
$roomName = $list->title;
// 表示ページのヘッダ部分
echo "<form method='POST'>";
echo "<table border='0' bgcolor='#6699FF' width='100%'><tr><td>";
echo "<big><b>" . $roomName . "</b></big>";
echo "</td></tr></table>";
echo "</form>";
}
?>
カレンダーの作成
残念ながらZend_Gdataでは今のところカレンダーリストの新規作成や更新、削除といった操作はサポートしておらず、Googleカレンダーサーバ上のリストを取得することしかできません。そのため、ブラウザからGoogleカレンダーにログインして登録する必要があります。
[1]デフォルトカレンダーの名称変更
デフォルトのカレンダーの名称はアカウント名となっています。今回はカレンダー一つを会議室一つとするため、名称を変更しましょう。画面左側のマイカレンダーの枠で、アカウントが表示されているところの三角ボタンを押し、メニューの「カレンダー設定」を押下します。

カレンダーの情報が表示されますので「カレンダー名」を「第1会議室」に変更します。

[2]新規カレンダー作成
上記カレンダー名に変更されたことを確認し、今度はマイカレンダー枠の作成リンクをクリックしてください。カレンダー情報が表示されますので、先ほどと同じ要領で「カレンダー名」を「第2会議室」に変更します。

これでサンプルを動かす準備ができました。

