「Simple Amazon」はWordPressでAmazonの商品を表示する事が出来るプラグインです。
Ver. 3.2ではProduct Advertising API(PAAPI)の「1秒間に1回まで」ルールにちゃんと対応してみました。
Ver. 3.1からVer.3.2への主な変更点は以下の通りです。
- Product Advertising APIの毎秒1コールのルールに対応した。
インストール方法はreadme.txtを参照してください。
旧バージョンからのバージョンアップの場合は、Simple Amazonのディレクトリごと置き換えてください(旧バージョンとディレクトリの構造が若干変わっているので)。また、flock関数を利用しているので、NFSなどのネットワークファイルシステムでは上手く動作しないかもしれません(未検証)。
ダウンロード
アクセスの直列化
PAAPIにはアクセスは1秒間に1回までというルールがあります。
(p) お客様自身も、また、お客様が Product Advertising API にリクエスト送信を行うアプリケーションを作成し公表した場合は、エンドユーザーによりインストールされたかかるアプリケーションの各コピーは、毎秒1 コールを超えないものとし、また、当方の事前の書面による同意なしに、Product Advertising API 宛にまたはこれより、サイズが40Kを超えるファイルを送信しないものとします。Product Advertising API
まあ、キャッシュするようにすれば、アクセス回数はだいたい1秒1回以下になるだろう、ということに(勝手に)していたのですが、たまたま「アクセス直列化」のライブラリを見つけたので導入してみました。てか、複数のアクセスを順番に並べることを「アクセス直列化」っていうんですね。なるほど。
実装方法を細かく説明すると長くなりそうですので、API アクセスを直列化するための簡単なライブラリを用意しています。前述のとおり flock が使えない環境だとちゃんと動きませんのでご注意ください。それと PHP5 以上が必要です。PHP4 で動かす場合は、microtime の呼び出し方を変えてもらえば動くと思います。PHP による Amazon PAAPI の毎秒ルール制限の実装とキャッシュの構築例 « ややゆっくりしていってネ!!!
と言うわけで、ありがたく使わせて頂きました。ありがとうございます。
このライブラリの導入により、毎秒1コールがきっちりまもられるようになったと思われます。
別の何かを探していて、たまたまこれに出会ったのですが、ところで、もともと自分は一体何を探していたんだったか忘れました…
まあいいか…
参考
追記
2010/5/15
不具合を修正したSimple Amazon Ver. 3.2.1を作成しました。