やかんブログ

[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 を扱うクラスの説明は次回に回したいと思います。

 →次回

この記事に関するお問い合わせはこちら

ページの先頭へ