| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.gdata.clientlogin">
- <title>ClientLogin による認証</title>
- <para>
- ClientLogin を使用すると、<acronym>PHP</acronym> アプリケーションで
- Google Data サービスへのアクセスのための認証ができるようになります。
- ユーザの認証情報を、 <acronym>HTTP</acronym> クライアントに指定します。
- </para>
- <para>
- Google Data ClientLogin 認証についての詳細は、
- <ulink url="http://code.google.com/apis/accounts/AuthForInstalledApps.html"> http://code.google.com/apis/accounts/AuthForInstalledApps.html </ulink>
- を参照ください。
- </para>
- <para>
- Google のドキュメントでは、ClientLogin 方式は
- "インストールするアプリケーション" に適しており、一方 AuthSub は
- "ウェブアプリケーション" に適しているとされています。
- これらの違いは、AuthSub はユーザとのやりとりが発生するということです。
- ブラウザのインターフェイスを用いて、リクエストのリダイレクトを行います。
- ClientLogin では <acronym>PHP</acronym> のコードでアカウント情報を提供します。
- ユーザが直接認証情報を入力する必要がなくなります。
- </para>
- <para>
- ClientLogin で使用する認証情報は、Google サービスの正当な認証情報でなければなりません。
- しかし、それは <acronym>PHP</acronym> アプリケーションを使用するユーザ自身のものである必要はありません。
- </para>
- <sect2 id="zend.gdata.clientlogin.login">
- <title>ClientLogin 認証済みの Http クライアントの作成</title>
- <para>
- ClientLogin を使用した認証済みの <acronym>HTTP</acronym> クライアントを作成するには、
- 静的関数 <methodname>Zend_Gdata_ClientLogin::getHttpClient()</methodname>
- をコールし、Google アカウントの認証情報をプレーンテキストで渡します。
- この関数の返り値は、<classname>Zend_Http_Client</classname> クラスのオブジェクトとなります。
- </para>
- <para>
- オプションの三番目のパラメータには、Google Data
- サービスの名前が指定できます。たとえば、'cl'
- は Google Calendar を表します。デフォルトは 'xapi' で、
- これは Google Data サーバの汎用的なサービス名を表します。
- </para>
- <para>
- オプションの四番目のパラメータには <classname>Zend_Http_Client</classname>
- のインスタンスを指定できます。これによって、
- たとえばプロキシサーバなどのクライアント設定を行うことができます。
- このパラメータに <constant>NULL</constant> を渡すと、
- 汎用的な <classname>Zend_Http_Client</classname> オブジェクトが作成されます。
- </para>
- <para>
- オプションの五番目のパラメータには、Google Data
- サーバがクライアントアプリケーションを識別するための短い文字列
- (これはログ記録の際に使用します) を指定できます。
- デフォルトでは、これは "Zend-ZendFramework" となります。
- </para>
- <para>
- オプションの六番目のパラメータには、サーバが発行する
- <trademark>CAPTCHA</trademark> チャレンジ用の文字列 ID を設定します。
- これが必要となるのは、一度ログインを試みた際にサーバから
- <trademark>CAPTCHA</trademark> チャレンジを受け取った後の再ログイン時のみです。
- </para>
- <para>
- オプションの七番目のパラメータには、サーバが発行する
- <trademark>CAPTCHA</trademark> チャレンジに対するユーザからの応答を設定します。
- これが必要となるのは、一度ログインを試みた際にサーバから
- <trademark>CAPTCHA</trademark> チャレンジを受け取った後の再ログイン時のみです。
- </para>
- <para>
- 以下の例は、<acronym>PHP</acronym> のウェブアプリケーションのコードです。
- Google Calendar サービスに対する認証を行い、
- 認証済みの <classname>Zend_Http_Client</classname> を使用して <classname>Zend_Gdata</classname>
- クライアントオブジェクトを作成します。
- </para>
- <programlisting language="php"><![CDATA[
- // Google アカウントの情報を指定します
- $email = 'johndoe@gmail.com';
- $passwd = 'xxxxxxxx';
- try {
- $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl');
- } catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
- echo 'CAPTCHA 画像の URL: ' . $cre->getCaptchaUrl() . "\n";
- echo 'トークン ID: ' . $cre->getCaptchaToken() . "\n";
- } catch (Zend_Gdata_App_AuthException $ae) {
- echo '認証に失敗: ' . $ae->exception() . "\n";
- }
- $cal = new Zend_Gdata_Calendar($client);
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.gdata.clientlogin.terminating">
- <title>Http クライアントの ClientLogin 認証の解除</title>
- <para>
- ClientLogin 認証を解除する方法はありません。というのは、これは
- AuthSub のようにトークンを使用した認証ではないからです。
- ClientLogin 認証に使用する情報は Google アカウントのユーザ名とパスワードであり、
- これらは将来も繰り返し使用できます。
- </para>
- </sect2>
- </sect1>
|