Google Base 用の Google Data API インターフェイスを使用すると、 Google Base のデータベースに対して問い合わせを行うアプリケーションを書くことができます。 たとえば製品やサービス、イベントなどについての問い合わせが可能です。 また、プログラムから Google Base にエントリを入力したり、 それを管理したりすることも可能です。
Google Base API についての詳細な情報は http://code.google.com/apis/base/ を参照ください。
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
(関連性) の順となります。
データを更新するには、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 のドキュメントを参照ください。
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'); ?>