タグ「レンタルサーバ」が付けられているもの


Perl で Amazon アソシエイト WEBサービス (現 Product Advertising API)の署名認証をどうにかする

  • 投稿日:
  • by
  • Category:

WebAPIでAmazonの商品情報を取れるProduct Advertising APIを使って、
以下のようなマニュアル通りのURL(※分かりやすいよう改行した)でリクエストすると

http://ecs.amazonaws.jp/onca/xml?
Service=AWSECommerceService
&AWSAccessKeyId=[AccessKeyId]
&Operation=ItemSearch
&SearchIndex=ALL
&Keywords=Antecp193
<Message>The request must contain the parameter Signature.</Message>

というエラーのXMLが返ってくる。

これは2009年8月からAPIの仕様変更により、APIのリクエストに電子署名を付加しな
ければならなくなった。これがなかなか厄介だったのでメモしておく。

Perlの場合は便利なモジュールが存在し、
・404 blog not found さんのとこの URI::Amazon::APA (CPAN)
・また上のモジュールで使われている Digest::SHA::PurePerl (CPAN)
の2つをCPANからダウンロードしてくる。

私が使っているロリポップのようなレンタルサーバーの場合、
CPANを使ったモジュールのインストールはもちろん出来ないので、
自分でCPAN用のディレクトリを作っちゃえばいい。(ってことを最近知った
長くなりそうなので続きに書く。