CodeZine(コードジン)

特集ページ一覧

PHPアプリケーションからGoogle Calendarを利用しよう(前編)

Zend FrameworkでGoogleアプリケーションを使い倒す(2)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

ダウンロード sample.zip (1.9 KB)

目次

Google Calenderを利用した会議室予約システム

 今回は前編・後編で簡単な会議室予約システムを作ります。Zend_Gdata_Calendarクラスを使用してGoogle Calendarサービスにアクセスし、予約の参照、登録、変更を行えるようなものです。

 前編である今回は認証とカレンダーリストの取得について解説します。カレンダーの一覧を取得して表示させるものです。一つのカレンダーリストを一つの会議室と見立てています。

図2:会議室一覧
図2:会議室一覧

サンプルコード(抜粋)

 以下が、今回のサンプルコードの抜粋になります。詳細は後述していきます。とりあえず動かしたい方はサンプルコードをダウンロードし、認証部分のアカウント(メールアドレス)とパスワードを自分のGoogleアカウントに書き換えて実行してみてください。

[リスト2]index.php
<?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]デフォルトカレンダーの名称変更

 デフォルトのカレンダーの名称はアカウント名となっています。今回はカレンダー一つを会議室一つとするため、名称を変更しましょう。画面左側のマイカレンダーの枠で、アカウントが表示されているところの三角ボタンを押し、メニューの「カレンダー設定」を押下します。

図3:カレンダーの設定
図3:カレンダーの設定

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

図4:カレンダー名設定
図4:カレンダー名設定

[2]新規カレンダー作成

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

図5:名称確認、新規作成
図5:名称確認、新規作成

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


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Zend FrameworkでGoogleアプリケーションを使い倒す

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト 森山 絵美 (モリヤマ エミ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5