ページにあった商品を紹介する仕組み
マッシュアップ・サイトを作る話の3回目です。
さて、APIツールを作るために、自分のパソコンに開発環境を作りました。
phpを入れ、ウェブサーバーもインストールし、スマーティ(Smarty)もダウンロードしました。
今回は、APIの仕組みを理解してAPIをマスターすること。
その結果として、アクアスで作ったHTMLサイトに、まず楽天のお薦め商品を表示できるようにする、、、、というのをゴールに設定しました。
なので、サイトごとに別々のスタイルで商品を表示したいという事で、スマーティを使うことにしました。
スマーティというのは、テンプレートエンジンと言って、phpスクリプトで取得した情報を、表示するためのテンプレートです。
イメージとしては、ブログやMTのテンプレートですね。
あれのもう少し高度なヤツって感じです。
【楽天のサーバーにリクエストを投げる】
↓
【返答をphpで解析して、必要な情報を取り出す】
↓
【Smartyでwebページに整形する】
と言う流れです。
こういう風に計算と整形を分ける事によって、表示するデザインだけ変えるという事ができるわけですね。
商品情報を取得しているプログラムは共通で、表示するためのテンプレートが違うだけです。
サイトによって検索結果の出し方を自由に変えたかったので、これは必須条件でした。
APIツールのデータの流れ
楽天の商品を検索するには、楽天のウェブサーバーに、キーワードやジャンルコード、並べ順、価格の上限と下限などをまとめてリクエストします。
具体的には、URLの一番最後に?をつけて、そのあとにkeyword=××&ganreId=××、、、、とくっつけたヤツを送るわけです。
そうすると楽天のAPIサーバからXML形式で返答(レスポンス)が返ってきます。
それをphpプログラムに取り込んで、さらに分解して、こういう配列を作ります。
- 商品名 → グルコサミン
- 価格 → 2980
- 税金 → 税込み・税別
- 送料 → 送料別・送料込み
- 商品画像URL → http://、、、
- アフィリURL → http://、、、
これをスマーティに送って、整形して表示するわけです。
ただこれは、サイトに来た人が検索キーワードを入力しないと結果が出ないわけですから、自分のページが表示された瞬間に、お薦め商品を出す事ができません。
なのでもう一工夫が必要でした。
公開日:2009年08月 12日
追伸と解説
この当時のイメージでは、静的HTMLサイトの記事の下に、アイフレームタグで窓を開けて、動的に商品情報を呼び出すという形でした。
ただ結局、このタイプの仕組みは作りませんでした。
というのも、楽天市場の商品を紹介するなら、楽天で商品検索をして、それをアフィリ用のURLに変換して、リンクを張れば良いということに気づいたからです。
それにこのやり方だと、紹介できる商品数が少なすぎて、探す楽しみや選ぶ楽しみもないかな?ってことで、結局、独立したサイトを立てて紹介するというやり方になりました。