Net::Amazon

  • 投稿日:
  • by
  • カテゴリ:

そういえば、いいかげん、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"; }

ってな感じで使えばいいだけじゃないか……。すまぬ。単純に以前と同じようには使えない。というだけだったのね……