ClientLogin を使用すると、PHP アプリケーションで Google Data サービスへのアクセスのための認証ができるようになります。 ユーザの認証情報を、Http クライアントに指定します。
Google Data ClientLogin 認証についての詳細は、 http://code.google.com/apis/accounts/AuthForInstalledApps.html を参照ください。
Google のドキュメントでは、ClientLogin 方式は "インストールするアプリケーション" に適しており、一方 AuthSub は "ウェブアプリケーション" に適しているとされています。 これらの違いは、AuthSub はユーザとのやりとりが発生するということです。 ブラウザのインターフェイスを用いて、リクエストのリダイレクトを行います。 ClientLogin では PHP のコードでアカウント情報を提供します。 ユーザが直接認証情報を入力する必要がなくなります。
ClientLogin で使用する認証情報は、Google サービスの正当な認証情報でなければなりません。 しかし、それは PHP アプリケーションを使用するユーザ自身のものである必要はありません。
ClientLogin を使用した認証済みの Http クライアントを作成するには、
静的関数 Zend_Gdata_ClientLogin::getHttpClient()
をコールし、Google アカウントの認証情報をプレーンテキストで渡します。
この関数の返り値は、Zend_Http_Client クラスのオブジェクトとなります。
オプションの三番目のパラメータには、Google Data サービスの名前が指定できます。たとえば、'cl' は Google Calendar を表します。デフォルトは 'xapi' で、 これは Google Data サーバの汎用的なサービス名を表します。
オプションの四番目のパラメータには Zend_Http_Client
のインスタンスを指定できます。これによって、
たとえばプロキシサーバなどのクライアント設定を行うことができます。
このパラメータに null
を渡すと、
汎用的な Zend_Http_Client オブジェクトが作成されます。
オプションの五番目のパラメータには、Google Data サーバがクライアントアプリケーションを識別するための短い文字列 (これはログ記録の際に使用します) を指定できます。 デフォルトでは、これは "Zend-ZendFramework" となります。
以下の例は、PHP のウェブアプリケーションのコードです。 Google Calendar サービスに対する認証を行い、 認証済みの Http クライアントを使用して Zend_Gdata クライアントオブジェクトを作成します。
<?php // Google アカウントの情報を指定します $email = 'johndoe@gmail.com'; $passwd = 'xxxxxxxx'; $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl'); $cal = new Zend_Gdata_Calendar($client); ?>