[PHP]Zend Google Data Client Libraryで gCal APIs を使う[その2]
2007年09月10日(月)12:34|那須
那須です。
前回は、Google APIsと、それをPHPで扱うライブラリZend GData Client Library(以下、Zend GData CLと書きます)の説明をしました。
今回から、Zend GData CLの使い方を説明していきます。今回は Googleのサービスを利用するにあたり、多くの場合必要になるであろう アカウント認証に関わるAPIに触れたいと思います。 もちろん、Googleが提供しているAPIには、アカウント認証を必要としないものもあります。ですが、Google Calendar のデータを取ってくるなどの場合、アカウントを特定する必要があり、事前に認証を行う必要があります。
Googleアカウント認証API
Google Calendarなどを使う場合、メールアドレスとパスワードを入力する必要があります(以前入力していて、その状態を保持している場合は除きます)。APIを利用する場合も、同様な仕組みが必要となります。
Googleが提供している アカウント認証APIには
- ClientLogin
- 直接メールアドレスとパスワードを送信して認証を行う
- AuthSub
- Googleアカウントのサイト上で、メールアドレスとパスワードを送信して認証を行う
があります。
ClientLoginは直接的な認証方法で手順も少ないのですが、メールアドレス/パスワードをAPIを使ったサービスに送信する(またはプログラムに埋め込む)必要があります。そのため、使いどころが限られます。
AuthSubは、一度Googleアカウントのサイトに移動し、そこで認証を行うため、ClientLoginに比べると安全な認証機構です。その分少し手順が複雑となります。
それぞれの詳細について、知りたい方は
等を参照してみてください。
本稿では、ClientLogin, AuthSubを Zend GData CLで扱う方法について述べていきます。
Zend_Gdata_ClientLogin
Zend GData CLには、ClientLoginに対応するクラスとして、Zend_Gdata_ClientLoginがあります。
getHttpClient
引数
- $email
- 認証に使うメールアドレス
- $password
- 認証に使うパスワード
- $service
- デフォルト:’xapi’
- 認証した後利用するサービスを識別するコード
- “cl” : Google Calendar用
- $client
- Zend_Http_Clientオブジェクト
- デフォルト:null
- $source
- クライアントアプリケーションを識別するコード
- デフォルト:self::DEFAULT_SOURCE
戻り値
- Zend_Http_Clientオブジェクト
Zend_Gdata_ClientLogin には getHttpClient() というメソッドしかありません。ClientLoginを使う場合は、getHttpClient()を呼び出し、その結果を 他の Zend GData CL のクラスで利用します。
- 例
$client = Zend_Gdata_ClientLogin::getHttpClient($this->user, $this-pass, Zend_Gdata_Calendar::AUTHSERVICENAME); $gCal = new Zend_Gdata_Calendar($client);
最後に
少々長くなってきましたので、AuthSub を扱うクラスの説明は次回に回したいと思います。
→次回