価格.com API+cakePHPで簡単商品検索

ここ数日cakePHPのフォーラムで話題にあがっていたcakePHP1.2のXMLライブラリを使って、Webサービスを簡単に使ってみたいと思います。もちろん、SimpleXMLでも全然良いのですが、まあ、せっかくなので。

今回のお題は、「価格.com API+cakePHP1.2で簡単商品検索」です。価格.com APIでは、いくつかのメソッドを提供してくれていますが、今回はその中でも代表的と思われる、商品検索を題材にサンプルを公開してみたいと思います。

作るものの概要は、検索用フォームに検索キーワードを突っ込んで、キーワードで価格.comを検索。結果を表示すると言う基本的な流れにチャレンジしたいと思います。そして、その中でXMLライブラリを利用したいと思います。

Controller ( controllers/samples_controller.php )
[PHP]
class SamplesController extends AppController {
var $name = ‘Samples’;
var $uses = null; // DBは利用しません。
var $helpers = array(‘Html’, ‘Form’);

function index () {
// POSTデータが何も無ければ何もしない。
if ( !isset( $this->data ) ) return;

// 価格.com APIへのリクエストURLを作成します(PHP5のみ)
$url = ‘http://api.kakaku.com/Ver1/ItemSearch.asp?’;
$url.= http_build_query( $this->data['Sample'] );

// XMLライブラリを利用して、レスポンスをsetします
uses( ‘XML’ );
$xml = new XML( $url );
$this->set( ‘data’, Set::reverse( $xml ) );
}
[/PHP]
これだけで、XMLの取得から、XMLの配列化がおこなわれます。XMLライブラリはとっても便利です。

View(views/samples/index.ctp)
[PHP]

価格.com検索

echo $form->create( ‘Sample’, array( ‘action’ => ‘index’ ) );
echo $form->input( ‘Keyword’ );
echo $form->end( ‘検索’ );
?>


image( $item['ImageUrl'] ) ?> link( $item['ProductName'], $item['ItemPageUrl'] ) ?>


[/PHP]
レスポンスのXML構造に関しては、オフィシャルのドキュメントをご覧頂ければいいと思いますが、たったこれだけの処理で、こんなページが出来上がります。

cakePHP1.2+価格.com APIサンプル

cakePHP1.2+価格.com APIサンプル


便利!簡単!

P.S.
本当は、価格.com APIへ渡すキーワードはShift Jisでエンコードする必要がありますが、面倒なのでそれは省いてしまいましたw

Posted in: 未分類

Tags: , , , ,



addコメントする