やかん部@FLATz

[PHP]Zend Google Data Client Libraryで gCal APIs を使う[その3]

このエントリをdel.icio.usに追加このエントリをはてなブックマークに追加 |2007年09月10日(月)14:09|nasu

那須です。


 前回は、GoogleアカウントのClientLoginをZend GData CLで扱うクラスの説明をしました。今回は、Googleアカウント関連のもう1つの柱である AuthSub を扱うクラスを説明したいと思います。


Zend_Gdata_AuthSub


 Zend GData CLには、AuthSubに対応するクラスとして、Zend_Gdata_AuthSubがあります。


 Zend_Gdata_AuthSub には5つのメソッドがあります。


  • getAuthSubTokenUri
  • getAuthSubSessionToken
  • getHttpClient
  • getAuthSubTokenInfo
  • AuthSubRevokeToken

getAuthSubTokenUri


引数


  • $next
    • Googleアカウントで認証が済んだ後に表示するURL
  • $scope
    • 認証した後利用するサービスのURL
    • http://www.google.com/calendar/feeds/
    • ↑Google Calendarを利用する場合に指定する
  • $secure
    • トークンをセキュアトークンとして利用する場合、1にする
    • デフォルト:0
  • $session
    • トークンをセッショントークン(繰り返し利用する)場合、1にする
    • デフォルト:0

戻り値


  • GoogleアカウントへのURL

 GoogleアカウントへのURLを生成するメソッドです。ユーザが戻り値のURLにアクセスし、Googleアカウント上で認証を行う流れとなります。認証後、$nextパラメータのURLにリダイレクトしますが、このときGETパラメータとして、トークンが付与されます。



echo printf(‘<a href=’%s’>こちらから認証を行ってください</a>’, Zend_Gdata_AuthSub::getAuthSubTokenUri(‘http://yakan.flatz.jp’, ‘http://www.google.com/calendar/feeds/’, false, true));


 この例は、次のように表示されます


こちらから認証を行ってください


getAuthSubSessionToken


引数


  • $token
    • トークン
  • $client
    • Zend_Http_Clientオブジェクト
    • デフォルト: null

戻り値


  • セッショントークン

 getAuthSubSessionToken()は、getAuthSubTokenUri()を通してGoogleアカウントから発行されたトークンを、セッショントークンに変換するメソッドです。セッショントークンを使うことで、認証が通過している扱いとなります。



$_SESSION[‘google’][‘token’] = Zend_Gdata_AuthSub::getAuthSubSessionToken($_GET[‘token’]);


getHttpClient


引数


  • $token
    • セッショントークン
  • $client
    • Zend_Http_Clientオブジェクト
    • デフォルト: null

 getHttpClient()は、Zend_Gdata_ClientLogin::getHttpClient と同じく、Zend GData CLの他のクラスで用いるオブジェクトを返します。認証の方法が、セッショントークンを使うか、メールアドレス/パスワードを使うかのの違いとなります。


AuthSubRevokeToken


引数


  • $token
    • セッショントークン
  • $client
    • Zend_Http_Clientオブジェクト
    • デフォルト: null

戻り値


  • boolean

 AuthSubRevokeToken()は、セッショントークンの破棄に用います。


getAuthSubTokenInfo


引数


  • $token
    • セッショントークン
  • $client
    • Zend_Http_Clientオブジェクト
    • デフォルト: null

戻り値


  • セッショントークンの状態を表す文字列

 getAuthSubTokenInfo()は、セッショントークンの状態を問い合わせるのに用います。戻り値は、トークンが有効ならば、以下のような情報を返します。


Target=yakan.flatz.jp

Secure=false

Scope=http://www.google.com/calendar/feeds/


 トークンが向こうの場合は、Googleからの結果HTMLをそのまま返します。例えば


<HTML>

<HEAD>

<TITLE>Token BASE64 decode error</TITLE>

</HEAD>

<BODY BGCOLOR=”#FFFFFF” TEXT=”#000000”>

<H1>Token BASE64 decode error</H1>

<H2>Error 403</H2>

</BODY>

</HTML>


 getAuthSubTokenInfo()は有効/無効のチェックに限らず、有効な場合でも、自分で必要な情報を切り出さねばならず、正直使いづらい印象です。
 Zend GData CL の今後の発展に期待したいと思います。


最後に


 Google Calendar APIs を使ってみることを目標に始めたものの、未だに肝心のAPIまでたどり着けません…ですが、Googleアカウント認証APIは、Google Calendar APIs を使う場合、避けては通れないAPIです。もちろん、Googleの他のAPIを使う場合にも役立つかと思いますので、参考になればと思います。


 いよいよ次回は Google Calendar APIs に関する話題に触れたいと思います。

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


関連記事


Trackback URL


このページの先頭へ