Amazon API の大掛かりな仕様変更[2009-05-09-1]まであと半月。
みなさん準備はどうですか?
私は、アマゾンAPIを使っている個別サービスの数が多いので、まずは Perl で自分用 Amazon Product Advertising API proxy CGI を作って当面の対処をすることにしました。
名前は PAPAXY(パパクシィ)。
「Perl Amazon Product Advertising api proXY」の略です。
テキトー
今までの amazon api の URL、
URL を変更するだけで使えます。
実行結果XMLも今までとまったく同じです。
サーバが非力なので、みなさんに自由に使って頂ける API proxy を提供できません。
コードだけ公開しますので、自分のサーバに置いて好きなように使ってください。
- [を] アマゾンAPIを使うのに2009年8月15日から認証が必要になるらしい[2009-05-09-1]
- Product Advertising API 開発者向けガイド リクエストの署名認証について(参考訳)
https://affiliate.amazon.co.jp/gp/associates/help/t126
- Amazon API認証のPROXYを書いたよ (ただのにっき)
http://sho.tdiary.net/20090619.html#p01
Ruby による proxy。
- Ajax - AWS Caching Proxy w/ Authentication Support (404 Blog Not Found)
http://blog.livedoor.jp/dankogai/archives/51227901.html
データをそのまま受け渡す proxy ではないけど。
みなさん準備はどうですか?
私は、アマゾンAPIを使っている個別サービスの数が多いので、まずは Perl で自分用 Amazon Product Advertising API proxy CGI を作って当面の対処をすることにしました。
名前は PAPAXY(パパクシィ)。
「Perl Amazon Product Advertising api proXY」の略です。
テキトー
今までの amazon api の URL、
のかわりに下記のように自分用 URL を使うことにしました。http://webservices.amazon.co.jp/onca/xml?...
「?」以降のパラメータは今までと同じです。http://PAPAXY_URL/api.cgi?...
URL を変更するだけで使えます。
実行結果XMLも今までとまったく同じです。
コード
サーバが非力なので、みなさんに自由に使って頂ける API proxy を提供できません。
コードだけ公開しますので、自分のサーバに置いて好きなように使ってください。
(ライセンス的なもの:http://lifehacks.ta2o.net/byebye-copyright.html)#!/usr/bin/perl -T use strict; use warnings; use Digest::SHA qw(hmac_sha256_base64); use URI::Escape qw(uri_escape); use CGI; use LWP::Simple; use POSIX qw(strftime); my $q = new CGI; my %pkv; foreach my $k ($q->param) { $pkv{$k} = $q->param($k); } $pkv{"Timestamp"} = strftime("%Y-%m-%dT%H:%M:%SZ", gmtime); my $pstr = join('&', map {"$_=".uri_escape($pkv{$_})} (sort keys %pkv)); my $data = "GET\nwebservices.amazon.co.jp\n/onca/xml\n$pstr"; my $key = "Your Secret Access Key"; my $signature = hmac_sha256_base64($data, $key); $signature .= '=' while length($signature) % 4; $signature = URI::Escape::uri_escape($signature); my $aurl = qq(http://webservices.amazon.co.jp/onca/xml?) .qq($pstr&Signature=$signature); print $q->header(-type=>'text/xml; charset=UTF-8'); print get($aurl) || ""; print "\n";
関連情報
- [を] アマゾンAPIを使うのに2009年8月15日から認証が必要になるらしい[2009-05-09-1]
- Product Advertising API 開発者向けガイド リクエストの署名認証について(参考訳)
https://affiliate.amazon.co.jp/gp/associates/help/t126
- Amazon API認証のPROXYを書いたよ (ただのにっき)
http://sho.tdiary.net/20090619.html#p01
Ruby による proxy。
- Ajax - AWS Caching Proxy w/ Authentication Support (404 Blog Not Found)
http://blog.livedoor.jp/dankogai/archives/51227901.html
データをそのまま受け渡す proxy ではないけど。
この記事に言及しているこのブログ内の記事