2 posts tagged “php”
「PEAR - Services_Amazonがプロキシ対応」でServices_AmazonとServices_AmazonECS4について悩みましたが、そもそもの問題はAmazon E-Commerce Serviceの現行版は2008年3月末日で終了し、それまでにAmazon ECS 4.0版に移行しておく必要があるのだそうです。
After many years of useful service, the Amazon E-Commerce Service 3.0 (Amazon ECS 3.0) web service will be shut down on March 31, 2008.
Amazon ECS 3.0 Sunset: Please Migrate to Amazon ECS 4.0 - Amazon Web Services Developer Connection : Newsletter #22
私に関係があるのは、OpenPNEのレビュー周り。「Amazon Web Services Developer Connection : Migrating from Amazon ECS 3.0」などを見ていじり始めたのですが、本格的にやろうとすると、なかなかウンザリ気味に進まずにいました。しかしありがたいことに、OpenPNEコミュニティの方で対応され、2.11.3(開発版の次リリース)に入るようです。
PEAR::Service_Amazon をバージョンアップし、AmazonECS4.php を使うようにする。
#1747 (PEAR::Service_Amazon をバージョンアップし、AmazonECS4.php を使うようにする) - OpenPNE - Trac
OpenPNE-2.11.3としては、「SearchIndex」「DBデータ変更」のままでリリースします。
#1747 (PEAR::Service_Amazon をバージョンアップし、AmazonECS4.php を使うようにする) - OpenPNE - Trac
これ以上の作業が不要になったので、これに関しては手を止めることにして、一応メモだけ。
- AmazonECS4では、searchKeywordのかわりにItemSearchを使う。以下のようにする。
$amazon->ItemSearch(SearchIndex, array('Keywords' => $keyword)); - SearchIndexは従来のカテゴリのようなもので、利用できる値はdocs.amazonwebservices.comやDownload Browse Nodes for Amazon.com AWSで調べられる。しかし実際には「ForeignBooks」など、これ以外の値も利用できる様子。
- 検索結果にProductGroupが入ってくるが、これはSearchIndexと必ずしも同じではない。例えば時計が"Watch"というProductGroupになっているが、SearchIndexに"Watch"を指定しても検索結果がなかったりする。
SearchIndexとProductGroupが別物というところがいやらしいですね。
これからAmazonECS 4.0への移行を図るような時には、検索(SearchIndexを使う)の時には「全商品から」の扱いになる"Blended"を指定して、従来のカテゴリ関連のデータとしては、ProductGroupの値を記録しておくようなアプローチがよいかも。
PEARライブラリServices_Amazonの0.7.1版がリリースされ、#12677でリクエストしたHTTPプロキシ対応パッチも取り込んでもらえたようです。早速、パッチ送付時に作成したテストコードを用意。
<?php
require_once 'Services/Amazon.php';
$amazon = new Services_Amazon('YOURACCESSID', 'YOURASSOCIATEID', 'us', 'http://xml.amazon.co.jp/onca/xml2');
$amazon->setProxy('127.0.0.1',8080);
$products = $amazon->searchIsbn('0596005423');
print_r($products);?>
そして実行。
C:\>php test.php
PHP Fatal error: Call to undefined method Services_Amazon::setProxy() in C:\test.php on line 5
うは!Services/AmazonECS4.phpに取り込まれてるけど、Services/Amazon.phpには取り込まれてない!
OpenPNEのレビュー関連では、Services/Amazon.phpが使われていて、プロキシ対応に関連して、これのプロキシ対応を期待していたのですが...。というか、こちらが更新されることを前提にOpenPNEの方も修正をかけてました。
もしかして、Services/Amazon.phpはobsoleteでServices/AmazonECS4.phpを使えとか、なんかそういうのがあるんでしょうか。OpenPNEも、こちらベースで修正パッチを作って送った方が良いのかな。
----
ご本人のブログにそうコメントしたら、検討してもらえるとのこと。pear.php.netでたどたどしい私の英語でやっているより、日本人同士、日本語でやり取りした方がはかがいった。
ありがとうございます。