はじめに
本連載では、PHP上で動作するアプリケーションフレームワーク「Zend Framework」と、Googleの提供するサービスを扱うための関数の集合体である「Google Data API」との連携について紹介します。Zend FrameworkのZend_Gdataというパッケージを使用することでGoogleカレンダーなどを利用したアプリケーションを開発することができます。
今回はGoogle Calendarを利用して簡単な会議室予約システムを作成してみましょう。前回のYouTube検索と違い、非公開のカレンダー、つまりログインしたアカウントのカレンダーを取得や、データの登録、更新、削除といった動作が必要になってくるため、Google Dataのクライアント認証が必要となります。
対象読者
PHPの基本構文は一通り理解しているが、フレームワークを利用したことはないという方を対象としています。
必要な環境
Zend FrameworkはPHP 5.1.4以降とWebサーバがインストールされている環境で利用可能です。またGoogleサービスによってはログインするためにOpensslが必要となります。
以下に、今回アプリケーション作成/動作確認に用いた環境を示します(インストールにあたっては最新安定版の使用を推奨します)。各項目の詳細なインストール手順は、「サーバサイド技術の学び舎 - WINGS」より「サーバサイド環境構築設定手順」、また「Zend Framework入門(1):フレームワークの全体像とインストール」をご参照ください。
- Windows Vista Home Edition
- PHP 5.2.8
- Apache 2.2.11
- OpenSSL 0.9.8i
- Zend Framework 1.7.4
LinuxやMacintosh、FreeBSDなどUNIX系OSをお使いの方もコマンドはほぼ一緒ですので、パスなどは適宜読み替えてください。
準備
今回のサンプルではGoogleアカウントを取得していることが前提となります。既に自分で取得済みの場合で、ひとまずサンプルを試すだけであればそちらを使用できます。ただ、データの削除なども行えるサンプルですので、データの管理には気を付けてください。Zend_Gdataの練習用ということであれば、新規に取得しても良いでしょう。
また認証を必要とするため、OpenSSLがインストールされていることが必要となります。今回はSSL対応のApacheをインストールすることにします。
Googleアカウント取得
まずはGoogleアカウントを取得しましょう。既に取得済みの場合は、読み飛ばして次の節へ進んでください。
[1]Googleアカウントにアクセス
ブラウザで「https://www.google.com/accounts/ManageAccount」にアクセスしてください。下記のような画面が表示されますので右下の[アカウントを作成]をクリックしてください。
[2]必要情報を入力
必要情報を入力して、最後にページ最下部の[同意して、アカウントを作成します]ボタンを押下します。アカウント登録が成功したら、再度Googleアカウントの画面に戻り、ログインできるか試してみてください。
OpenSSLインストール
今回は認証が必要のため、OpenSSLを必要とします。OpenSSLをインストールする方法としてはApacheのOpenSSL対応版をインストールする方法があります。
[1]インストーラのダウンロード
ブラウザにてApache HTTP Serverのダウンロードページにアクセスしてください。ページ内の「Win32 Binary including OpenSSL 0.9.8i (MSI Installer)」と書かれているところの「apache_2.2.11-win32-x86-openssl-0.9.8i.msi」のリンクをクリックし、インストーラをダウンロードしてください(バージョンはその時の最新のものを選択してください)。
[2]インストーラの実行
ダウンロードした「apache_2.2.11-win32-x86-openssl-0.9.8i.msi」をダブルクリックして実行してください。
以降はインストーラの指示に従い、インストールを完了させてください(「サーバサイド技術の学び舎 - WINGS」より「サーバサイド環境構築設定手順」も参考にすることができます)。
[3]httpd.conf編集
SSLが有効になるように以下の行を編集します。先頭に「#」がついていてコメントアウトされているようでしたら、「#」を削除して保存後、Apacheを再起動してください(その他のPHP向けの設定については、同じく「サーバサイド環境構築設定」を参照ください)。
LoadModule ssl_module modules/mod_ssl.so