個別エントリーにAmazon商品リンクを表示
スポンサード リンク
ブログでPHPを使えるようにしたので色々やってます。今日はブログの個別エントリーにAmazon Web サービスを使って、エントリーに関連する商品を表示させてしまおうと企てました。最もWeb2.0っぽくするなら、文章からキーワード抽出して、そのキーワードをAmazonに投げるっていう形式になるんでしょうけど、そんな技術は無いのでもう少し簡単に実現できる方法を考えました。方法はブログのエントリーに、
という風に検索対象にするカテゴリと検索キーワードを記述しておいて、この変数をPHPプログラムで利用するというものです。プログラムのほうでは、Amazonにキーワードを投げて検索結果の商品をXMLで10件受け取り、その10件の中からランダムに表示させます。
さて、Amazonとデータをやり取りするプログラムですが、最初はAmazon Web サービスのサンプルについていたSOAP形式のプログラムを利用してみました。しかし、レスポンスに5秒程度時間がかかってしまってその間ページの表示が止まってしまうという問題があったので、REST形式を使うことにしてみました。参考にしたサイトは、Amazon ECS 4.0 解説1 RESTリクエストのパラメータです。RESTのHTTPリクエストにつけるパラメータは、このサイトの説明に従いました。
リクエストの結果はXMLで返ってくるので、それをパースするものが必要です。ロリポップのPHPはPHP4なのでSimpleXMLは使えそうになく、色々調べてDOMXMLを使ってみました。参考にしたサイトは「Do You PHP? - PHP4.3.0でのDOM XML」です。DOMXMLに与えるXMLは外部サイトでも大丈夫なので、Amazon ECS 4.0のRESTのHTTPリクエストをそのまま与えればOK。それでもなかなかうまくパースできなかったのですが、なんとか商品ページURL、画像URL、商品名を取得できるようにしました。
同じキーワードでも、将来Amazonに新しい商品が追加されればそれに応じてブログに表示される商品も新しいものが追加されるのがいいですね。Web2.0までは行かなくても、Web1.5くらいの仕組みかなと思います。
前のエントリー: « MovableTypeにPHPでカレンダー設置
次のエントリー: Googleアラートとはてなブックマークで情報収集 »
トラックバック
このエントリーのトラックバックURL:
この一覧は、次のエントリーを参照しています: 個別エントリーにAmazon商品リンクを表示:
» AjaxでAmazon商品自動表示をパワーアップ from F.Ko-Jiの「一秒後は未来」
「個別エントリーにAmazon商品リンクを表示」で作ったプログラムを改良してみま... [詳しくはこちら]
» Amazonの支払いをコンビニとかATMとかネットバンキングで from F.Ko-Jiの「一秒後は未来」
AWSを利用してAmazonの関連商品をブログに表示するようにしてから、早くも6... [詳しくはこちら]
タイトル:
URL:
リンク用HTMLタグ:
powered by Google Chart API




