アマゾンのウェブサービス(AmazonWebService)というものがあります。
これを使うと、自分のサイトでアマゾンの商品データを活用することができます。
自分のブログに、AWSの機能をつけるプラグインがmt-awsなんです。
まず、AWSのディベロッパトークンというIDを取得します。国際共通IDなので英語で登録。
すると、サブクリプションIDというものがもらえます。これがディベロッパトークンです。
AWS3だとディベロッパトークンと呼びます。現在のAWSは4なのです。
このスクリプトは去年のものなので、仕様が古くAWS3用になっています。
現在ではそのまま使うことができません。そこで修正します。
まず、モジュールがキチンと入っているか確かめます。
LWP::UserAgent, XML::Simple, Jcodeの3つが必要ですが、後から入れる必要があるのは普通、Simpleのみです。他はmt-check.cgiで調べることができます。
XML::Simpleのインストールは、CPANからSimple.pmをダウンロードしextlib/XMLにアップロードしてください
mt-aws修正箇所
(修正前)148行目あたり
$res .= sprintf($out);
if ($q{lastn}>0) { $q{lastn}–; }
last if ($q{lastn} == 0);
}
if ($charset ne ‘utf8’) { $res = Jcode->new($res, ‘utf8’)->$charset(); }
sprintf($res);
(修正後)
#$res .= sprintf($out);
$res .= $out;
if ($q{lastn}>0) { $q{lastn}–; }
last if ($q{lastn} == 0);
}
#if ($charset ne ‘utf8’) { $res = Jcode->new($res, ‘utf8’)->$charset(); }
$res = Jcode->new($res, ‘utf8’)->$charset();
#sprintf($res);
return $res;
次の修正(特にAWS4仕様対応用)
修正前93行目あたり
my $url = ‘http://xml.amazon.com/onca/xml3?’;
修正後
my $url = ‘http://xml.amazon.co.jp/onca/xml3?’;
どうやらXMLの文字コード扱いの問題のようです。
また、mt-awsについてくるreadmeは間違っています。
dev-t=”developer-token”
ではなく
dev_token=”developer-token”
これで動きました。