mt-awsの設置

アマゾンのウェブサービス(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”

これで動きました。