SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

ダウンロード 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:名称確認、新規作成

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

次のページ
Googleカレンダの認証(①~③)

この記事は参考になりましたか?

Zend FrameworkでGoogleアプリケーションを使い倒す連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3816 2009/05/07 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー