"血をもって書け。そうすればあなたは、血が精神だということを経験するだろう。"

PHPでGData実験

PHP環境が整ったところでさっそくGDataを触ってみる。メモメモ。

GData

GoogleのデータフォーマットでAtomとRSSの拡張版みたいなもの。OpenSocialがGDataをベースにしているので重要。

Zend Framework

GDataも使えるPHPクライアントライブラリ。GData APIを採用していないGmail、Mapsには対応していない。XamppにはZend Optimizerだけ入っているらしいので自分で入れないといけない。

http://www.mashupedia.jp/webapis/view/69735 Google各サービスへアクセス「Google Account Authentication」
Google Account Authentication は、Googleの各サービスWeb APIへアクセスする際の認証を行う。

http://www.rcdtokyo.com/ucb/contents/i000815.php
Google Calendar APIの基礎

両方ともZend Frameworkへ誘導。Google APIPHPクライアントライブラリのドキュメンテーションにもちゃんとprovided by Zendって書いてある。
http://code.google.com/apis/gdata/clientlibs.html
自分でPHPクライアントライブラリを開発する気がなかったのか。Zendはイスラエル企業。

導入

http://framework.zend.com/manual/ja/introduction.installation.html
最新版をDLして解凍。apache\bin\php.iniを編集。

include_path = ".;C:\xampp\php\pear\;c:\xampp\php\" 
(ライブラリをc:\xampp\php\Zend\においた場合)

SSL起動

Windows用apacheでは

SSLEngine On

が効かないような気がするのでOpenSSLを使う。apache\bin\openssl.exeを実行してSSLをONにする。http://localhost/xampp/のステータスでSSLがONになっているのを確認。署名の発行とかは不要か、バックグラウンドで全自動?

デモ実行

demos/Zend/Gdata/Spreadsheet-ClientLogin.phpを試してみる。コマンドライン入力を想定しているのでWeb向けに編集。

//process command line options

のブロックをif(0)などで無効化し

$user=$_GET['user'];
$pass=$_GET['pass'];

とでも追加してhtdocs下におきhttp://.../Spreadsheet-Client.php?user=USER&pass=PASSにブラウザでアクセスするとログインしてDocsのリストを出力してくれる。warningにfgetsが出るのはコマンドライン入力をしてないから。

二つのGData認証手段

http://code.google.com/apis/accounts/Authentication.html

  • ClientLoginはインストール型アプリケーション
  • AuthSubはWebアプリケーション

で使えと書いてあるのでClientLoginの実験はここまでか。

問題

Windows用Apacheにはコンソール/ターミナルみたいなのはあるのか?