周りからの要望が多いので勉強を兼ねて作ってみました。
複数のECサイトやアフィリエイト各社から提供されている検索APIを利用して、横断的に検索を行い商品を探せるものです。どちらかと言えば、型番や品番を入れて検索して、最安値比較を行うのに向いています。
動作サンプル:検索画面
あくまでも各社のAPIの検索をどんな風にやっているのか、一例を示したもので参考になるかもしれません、ってレベルで実用的ではありません(使えますが、大変なことになります。一応使えますが・・・)。そのまま設置していただいてもなんとか使えるかもしれませんが、カテゴリーを絞るなどの工夫はしたほうがいいかもしれません。
なお、PHP5.1.2以上、PEAR/Cache Liteがサーバーにインストールされている前提です。
私が使っているCORESERVER.JP では問題無く動いています。また、最近仕様が変わったAmazon Product Advertising APIでの認証に対応しています。
thx.Amazon Product Advertising API への対応(PHP版) – もやし日記
WebサービスAPIを利用したサンプルファイルの公開と共通で利用できる設定ファイル – [mu]ムジログから設定記入用のファイルをダウンロードして各社のidやトークンなどを記入して、本プログラム内に設置してお使いください。
ダウンロード
ダウンロード:複数ECサイト横断検索 light Ver.0.2
動作サンプル:検索画面
改定履歴
2009/06/02 リンクシェアクロスオーバーサーチの正式リリースに伴い、sort指定など一部追加されたパラメータを反映(Ver.0.2)
コメント
お世話になります。素晴らしいサンプルで試させていただいております。
確かに広範囲な検索なので、ジャンルを絞って行うととても使いやすいと思いました。
自分で検索するのにも使えますので、重宝しそうです。
ただ、どうも楽天商品の検索がされない確立が高いように感じましたが、これは何かあるのでしょうか。
教えて頂けると幸いです。
今後ともタメになる情報楽しみにしています。
サイゴー 様>
使っていただいて、ありがとうございます。
これ、ちょっと古くて、今、手元にあるものの2つ前のバージョンです。
ジャンルを絞ることは、APIによってカテゴリのわけかたとか考え方が異なるので、少し難しいですが、実現不可能ではないと思います。
ちなみに、今、WordPressのプラグイン「VC Search」というものを作っていまして、ブログの文中にAPIへアクセスプログラムを埋め込んだり、ショッピングモール的に検索できるものをリリースしています。
これはAPI単位になりますが、ソート順指定やカテゴリー指定等が細かく指定出来ます。9種類のAPIに対応とブログに書きましたが、もっとありますw
さて、楽天の件ですが、ちょっとわからないですね。最新のAPIバージョンを使ってい無いのは確実なので、その影響もあるのですが、APIが重くなったり止まった時に、無視するようなコードを書いています。
なので、夜とかAPIにアクセスが集中しているときは処理をすっ飛ばして、他のを表示するようにしているのかもしれません。
お世話になっています。サイゴーです。
お忙しいところ、お返事をいただきまして有難う御座います。
「VC Search」の記事も読ませて頂きましたが、素晴らしいの一言です。使えるようになると私がやりたいと思っていたことができそうな気がしており、とても楽しみです。
楽天の件ですが、そういうことですね。ここ数日色々と試してみましたが、現在、楽天商品はほとんど反映されなくなってしまいました(10~20回に1度ほどくらいに出てきます)。
ちなみに楽天以外は表示も早く、きちんと出てきています。
ただ、楽天が反映されるときのみ表示までに時間がかかっていますので、負荷がかかっているのかなという気が…。
エラー表示されるよう「//」をつけてチェックしてみたところ・・・
●80行目 $rwsBuff = file_get_contents($rwsurl);
●89行目 foreach ($hits as $hit) {
がエラーとなっています。
私は詳しいわけではなく、こちらのプログラムをお手本とし、調べながら勉強中の者です。
「VC Search」を待って、使わせて頂く方がいいのかなと思ったりしていますが、何か納得できない状態だと嫌なので、何か回避・修正できる方法があれば教えて頂けると助かります。
ちなみに楽天はジャンルを絞って試していますが、反映されているのかよく分かりません。
お時間があればで結構ですので、ご助言下さると幸いです。
サイゴー 様>
別の記事で書いてもらったコメントのものは最新版の一つ前のバージョンのモノです。
出し渋りする理由も無いので、リリースさせていただきます。
(このあと微修正してこのブログ上で公開します)
よく訪問させていただき、参考にさせていただいております。
こちらの最新版(ver.1.0)を使わせていただいておりますが、jqueryを組み込んだりして充実したページが出来上がりつつあり、大変感謝しております。
ただ、プログラムの知識はまだまだ乏しく、どうしても分からない壁に直面してしまいましたので、質問させていただきました。
質問の内容は、10件ずつのページ分けをしたいと考えています。
現段階で配布いただいております資料は、
/kekka.php?word=●▼■&page=2
とすると、
/kekka.php?word=●▼■と同じ結果が表示されます。
例えば50件の検索結果があるとすれば、検索数の指定「if ($i==10) {break;}」とすると10件分しか表示されないと思います。
これを50としても、50件全てが1ページに表示されるため、10件×5ページにならないことは分かるのですが、5ページに分類したいと考えています。
ちなみに「総ページ数の表示」や「前ページ 1 2 3・・・次ページ」などといった装備はできていますので、後は上記のページ分類のみで後一歩といった状態です。
WPのVCSearchを参考にさせていただいたりもしましたが、複雑すぎて悩みに悩んでいます。
どのようにすればよろしいでしょうか?どうぞよろしくお願いいたします。
keikeiさん>
すでに2年前のソースであり、最新とは言えなくて恐縮です。
そんな中、すばらしくカスタマイズしていただいているようで、頭があがりません。ありがとうございます。
さて、ご質問いただいた質問ですが、この実装方法によるページングは簡単には実装できません(1つのAPIですとすごく簡単なのですが)。
ロジックとしては1ページに10件表示するとしたら、それぞれのAPIから何件ずつ表示されたか、という情報も含めて次のページへ渡す必要があります。そして、次のページでリクエストURLを組み立てる際に、前のページで何件表示されたか、というところから計算して、何件目から表示すればよいか、ということでリクエストを行えば良いと思います。
と、理論上アイデアはありますが、まだ僕自身はまだ手をつけておりません・・・。手を動かさずに口だけで申し訳ないのですが、チャレンジされるのであれば、頑張ってください。