12.4. Google Base の使用法
前のページ | 第12章 Zend_Gdata | 次のページ

## 12.4. Google Base の使用法

Google Base 用の Google Data API インターフェイスを使用すると、 Google Base のデータベースに対して問い合わせを行うアプリケーションを書くことができます。 たとえば製品やサービス、イベントなどについての問い合わせが可能です。 また、プログラムから Google Base にエントリを入力したり、 それを管理したりすることも可能です。

Google Base API についての詳細な情報は http://code.google.com/apis/base/ を参照ください。

### 12.4.1. データの問い合わせ

`setQuery()` メソッドを使用して検索するテキストを指定し、 Google Base に対して問い合わせます。

    <?php
    $gdataBase = new Zend_Gdata_Base();
    $gdataBase->setQuery('digital camera');
    $feed = $gdataBase->getBaseFeed();
    ?>

このオブジェクトの使用法についての詳細は、 Zend_Feed のドキュメントを参照ください。

Google Base では、属性をもとにした問い合わせもサポートしています。 属性の条件を指定するには `addAttribute()` メソッドを使用します。 このメソッドのパラメータは、 属性の名前とその値、そしてオプションで演算子となります。 デフォルトの演算子は ':' で、これは、文字列が一致することを表します。

属性による問い合わせは、テキストによる問い合わせと組み合わせることができます。

    <?php
    $gdataBase = new Zend_Gdata_Base();
    $gdataBase->setQuery('digital camera');
    $gdataBase->addAttributeQuery('price', '50 USD', '<');
    $feed = $gdataBase->getBaseFeed();
    ?>

`addAttributeQuery()` を使用して複数の属性を指定することもできます。 同じ属性に対して複数の条件を指定することも可能です。

属性についての条件をクリアするには `unsetAttributeQuery()` メソッドを使用します。 パラメータには属性名を指定します。同一の属性に対して複数の条件を指定している場合は、 そのずべてが削除されます。このメソッドのパラメータを指定しなかった場合は、 属性に関するすべての条件が削除されます。

`addAttribute()` メソッドでは、 括弧や否定、そして論理演算子などの拡張構文はサポートしていません そのようなものについては、 `setQuery()` メソッドを使用して文字列で指定します。

    <?php
    $gdataBase = new Zend_Gdata_Base();
    $gdataBase->setQuery('digital camera ( [price < 50 USD] | [location: @"Mountain View, CA 94043"] )');
    $feed = $gdataBase->getBaseFeed();
    ?>

結果のフィードは、さまざまな条件で並べ替えることができます。 並べ替えの条件を指定するには `setOrderby()` メソッドを使用します。よく使用する値には `modification-time` や `name` あるいは `relevancy` などがあります。 より高度なランキング指定を Ranking Language を用いて行うことも可能です。デフォルトでは、返されるエントリの並び順は `relevancy` (関連性) の順となります。

### 12.4.2. Base のデータの更新

データを更新するには、Zend_Gdata_Base オブジェクトに二つのものが必要です。 ひとつは認証済みの Http クライアント、そしてもうひとつはデベロッパーキーです。

デベロッパーキーは、通常は 54 文字の英数字による文字列です。 デベロッパーキーの取得方法については http://code.google.com/apis/base/starting-out.html#authDev を参照ください。

デベロッパーキーを設定するには、Zend_Gdata_Base のコンストラクタのオプションの第二パラメータを使用します。 既存のオブジェクトに対してデベロッパーキーを設定するには `setDeveloperKey()` メソッドを使用します。 Zend_Gdata_Base オブジェクトに対していちどデベロッパーキーを設定すると、 それ以降のリクエストではキーが自動的に送信されます。

    <?php
    $gdataBase = new Zend_Gdata_Base($authenticatedHttpClient);
    $gdataBase->setDeveloperKey($myDeveloperKey);
    ?>

エントリを Google Base に投稿するには `post()` メソッドを使用します。これは Zend_Gdata クラス群の共通メソッドです。 XML エントリの要素についての詳細は Google Base Data API のドキュメントを参照ください。

### 12.4.3. Base のメタデータの問い合わせ

Google Base のフィードの itemtypes に対する問い合わせを行うには `getItemTypesFeed()` メソッドを使用します。 このメソッドの最初のパラメータはロケールです。たとえば "en_US" のようになります。二番目のパラメータはオプションで、 項目の型を指定します。型を指定した場合は、 このメソッドはその型の属性のフィードを返します。 指定しなかった場合は、すべての型のフィードを返します。

    <?php
    $gdataBase = new Zend_Gdata_Base();

    // すべての型の一覧を取得します
    $itemTypes = $gdataBase->getItemTypesFeed('en_US');

    // 型が 'jobs' である属性の一覧を取得します
    $jobsAttributes = $gdataBase->getItemTypesFeed('en_US', 'jobs');
    ?>

指定した型の項目についての統計情報、たとえばそれぞれの属性の値ごとの Google Base のエントリ数などを問い合わせることも可能です。 このような問い合わせには `getItemTypeAttributesFeed()` メソッドを使用します。

    <?php
    $gdataBase = new Zend_Gdata_Base();
    $jobsAttributesStatistics = $gdataBase->getItemTypeAttributesFeed('jobs');
    ?>

前のページ | 上に戻る | 次のページ
12.3. ClientLogin による認証 | ホーム | 12.5. Google Blogger の使用法