そういえば、いいかげん、AmazonのECS 3.0からECS 4.0へ移行しないとだめなんじゃないか?と、その昔作ったmt-amazon.plをいろいろいじり始める。
とはいえ、Net::Amazonというモジュールを使っているのだから、簡単に対応できるだろう。と、いうわけで、最新版をインストール
NetBSDの場合、pkgsrc-wipから、wip/p5-Net-Amazon
をインストールすると、必要なものも全部インストールしてくれるので楽ちん。NetBSDじゃないひとは、CPANモジュールを使うと楽ちんですね。
で、いろいろやってみたんだけど、昔と違って、affiliateのリンクが作成されない。というか、そもそも、affiliate_idを指定しても、なにもやってないじゃん……。ってな感じで、あるバージョン以降、そういう風になったみたいだ。
--- /usr/pkg/lib/perl5/vendor_perl/5.8.0/Net/Amazon.pm 2008-01-14 10:03:02.000000000 +0900 +++ extlib/Net/Amazon.pm 2008-03-25 01:13:13.000000000 +0900 @@ -152,6 +152,7 @@ $url->query_form( 'Service' => 'AWSECommerceService', 'AWSAccessKeyId' => $self->{token}, + 'AssociateTag' => $self->{affiliate_id}, 'Version' => $WSDL_DATE, map { $_, $params{$_} } sort keys %params, );
ってな、パッチを当ててやればいいわけですが、これだと、affiliate_idを指定しなかったときにちゃんと動かなくなるので、もうすこし、マトモに対応してあげる必要がありそうww。
でも、もう、めんどうだから、これでいいや的。
ただ、mt-amazon自身は、mt-という接頭語をつけるのは、よろしくない。と、sixapartが言っていることと、設定を画面上から行うようにした方がいいんじゃないか?という理由で、もう少し、いじるとするかな。
今の状態が、欲しいという人は、送ることは出来ますが、おそらく、必要なモジュールを大量にインストールするのが面倒になるような気がします。
【追記】
あー、うそだうそだ。
use Net::Amazon; use Net::Amazon::Request::Artist; use Data::Dumper;
die "usage: $0 artist\n(use Zwan as an example)\n" unless defined $ARGV[0];
my $ua = Net::Amazon->new( token => 'YOUR_AMZN_TOKEN', );
my $req = Net::Amazon::Request::Artist->new( artist => $ARGV[0], AssociateTag => [your associate id], );
# Response is of type Net::Amazon::Artist::Response my $resp = $ua->request($req);
if($resp->is_success()) { print $resp->as_string, "\n"; } else { print $resp->message(), "\n"; }
ってな感じで使えばいいだけじゃないか……。すまぬ。単純に以前と同じようには使えない。というだけだったのね……