ラベル PAAPI の投稿を表示しています。 すべての投稿を表示
ラベル PAAPI の投稿を表示しています。 すべての投稿を表示

2011年9月25日日曜日

Amazon PAAPIの仕様変更に対応(2011-08-01バージョン)

2011-08-01バージョンのAmazon PAAPI対応作業を完了しました。

https://affiliate.amazon.co.jp/gp/advertising/api/detail/api-changes.html

旧バージョンの終了は2011年10月26日なのでまだだいぶ余裕がありますが、早めに対応しておきました。

個人的に今回の仕様変更で一番影響が大きかったのは「ItemSearch オペレーションにおいて、ItemPage パラメータの最大値は従来の400から10に変更となります。」のところでしょうか。

とは言っても修正箇所はほとんどなく、Pear::Pagerに

if($itemcount>100){ $itemcount = 100; }

って処理を入れるだけで済みました。

まああまりページ数が多くてもボットの巡回でサーバー負荷が高まるし、PAAPIの利用制限にも引っかかってしまうので、この仕様変更はAmazon・利用者双方にとって妥当なところだと思います。


しかしPAAPIは年々縮小していく傾向ですね。
今後もさらに縮小していくことが考えられるので、PAAPIを活用したサービスを作るのは少し躊躇してしまいますね。

2010年10月30日土曜日

Amazon PAAPIのカスタマーレビューiframe対応

またAmazon PAAPIネタです。

仕様変更のため、2010/11/09以降、PAAPIレスポンスデータからカスタマーレビューの文字情報が無くなり、かわりにiframe用のURLが返されるようになります。詳細はこちら

ちなみに実際のIFrameURLの内容などは、Amazon商品情報ビューワーで見るとよくわかります。(最近このツールよく使ってます)


しかも合計レビュー数や評価平均などのサマリ情報も取得できなくなります。
これは過去何度かあったPAAPIの仕様変更の中でも、一番影響が大きいのではないかと思います。

この新仕様の制約の中で、どうすれば最善の対応ができるか。調べてみました。


、、、が、特にいい案も浮かばず。とりあえずはそのままiframeタグを使って表示するしかなさそうです。


iframeを使う上でネックになるのが高さ(height)です。
ひとまず適当に500pxとかで指定するんですが、レビューがないと下300pxくらいスカスカになってしまうし、逆にレビューが多いとスクロールバーが出てしまうので、インターフェース的にあまりキレイじゃないです。

JavaScriptでIFrameURLの高さを取得して、heightを動的に変更、なんてこともできるんでしょうけど、色々面倒なことになりそうです。

あとphpでincludeする方法もありますが、PAAPI公式ページのよくある質問に見ると、

IFRAMEのみが、現在カスタマーレビューデータを表示する唯一の方法となります。ご了承ください。

IFRAMEのみが、現在カスタマーレビューデータを表示する、Amazonにおける唯一の方法となります。

現状、IFRAMEのみがサポート対象となっております。当方としては、アソシエイトの皆様にAmazonの商品を紹介いただくお手伝いをするために、近い将来、他のフォーマットについてのサポートについても検討予定です。


と、IFRAMEのみを連呼されてるので、iframe以外の方法を使うとガイドライン違反と判定されてしまう可能性もなくはありません。

というわけで、ひとまず素直にiframeを使うことにして、しばらく様子をみてみようと思います。最後の近い将来、他のフォーマットについてのサポートについても検討予定です。というのに期待したいと思います。


あともうひとつの大きな問題として、携帯対応があります。

そもそもiframe対応していない機種はどうしようもありません。

実際に自分の端末(ドコモP-09A)で試してみたところ、iframeは表示できたのですが、iframeの枠をクリックしてフォーカスさせないとスクロールできないので、PC以上にインターフェースが分かりにくくなってしまいます。

それよりも問題なのがiframe内のリンクをクリックしてもPC用ページに飛んでしまうこと。携帯のことはまったく考慮されていないようです。

というわけで、携帯サイトのほうは現状ではレビュー表示なしにするしかない、という結論に至りました。



正直かなり残念な仕様変更ですが、もう決まってしまったことなので利用者としては変更にはおとなしく従い、今後のバージョンアップで改善されることを期待するしかないです。