Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Amazon Product Advertising APIの認証を代替するPROXYサーバ
Ruby
branch: master

Merge pull request #3 from tdtds/enable_ci

add support Travis-CI
latest commit 2a0deed362
@tdtds authored
Failed to load latest commit information.
spec raised argument error when no AssociateTag or default_aid.
.gitignore update depencdency
.travis.yml run test in test environment
Gemfile
Gemfile.lock update depencdency
Procfile using thin server
README
Rakefile add support Travis-CI
amazon-auth-proxy.cgi raised argument error when no AssociateTag or default_aid.
amazon-auth-proxy.fcgi
amazon-auth-proxy.rb
amazon-auth-proxy.sample.yaml
amazon-auth-proxy.sinatra.yaml added name key into rpaproxy.yaml.
amazon-auth-proxy.yaml added name key into rpaproxy.yaml.
config.ru supported rack.
dot.htaccess first release.

README

Authentication Proxy Server of Amazon Product Advertising API.
(Amazon Product Advertising APIの認証を代替するPROXYサーバ)

■amazon-auth-proxy.cgi, amazon-auth-proxy.fcgi

amazon-auth-proxy.cgiは、RubyのCGIとして書かれています。従来の
Amazon ECS APIとして動作し、指定した言語のAmazon PAAPIに対して
有効な認証済みリクエストを作成して呼び出し元に返します。または
実際にAPIをコールしたのち、結果をそのまま返します。

amazon-auth-proxy.fcgiはFastCGI対応版です。内部的に.cgiを呼び出
しているので、.cgiも必要です。

amazon-auth-proxy.cgiは、同じディレクトリにあるamazon-auth-proxy.yaml
というファイルを読み、そこに記述されている各種APIキーとAPIのエ
ントリポイント、アソシエイトIDなどを使ってAPI呼び出しを構築しま
す(amazon-auth-proxy.sample.yamlを参照)。amazon-auth-proxy.yaml
には公開してはいけない情報が含まれるので、.htaccessなどによって
アクセスを禁止しなくてはいけません(dot.htaccess参照)。

amazon-auth-proxy.yamlで指定するentry_pointには、以下のような各
国向けAmazonのAPIエントリポイントURLを指定します:

   http://webservices.amazon.com/onca/xml
   http://webservices.amazon.co.jp/onca/xml
   http://webservices.amazon.fr/onca/xml
   http://webservices.amazon.co.uk/onca/xml
   http://webservices.amazon.de/onca/xml
   http://webservices.amazon.ca/onca/xml

また、Styleパラメタを使用したクエリのため、xslt_entry_pointとし
て以下のURLも指定してください:

   http://xml-us.amznxslt.com/onca/xml
   http://xml-jp.amznxslt.com/onca/xml
   http://xml-fr.amznxslt.com/onca/xml
   http://xml-uk.amznxslt.com/onca/xml
   http://xml-de.amznxslt.com/onca/xml
   http://xml-ca.amznxslt.com/onca/xml

use_redirectは、通常trueにして運用してください。これは構築した
AmazonへのリクエストURLを、302リダイレクトとして呼び出し元に返
すという意味です。これにより、proxyサーバの負荷を低減します。


■amazon-auth-proxy.rb
amazon-auth-proxy.cgiのSinatra版です。内部で.cgiを読み込んでい
るため、.cgiも必要です。

Sinatra版は、一つのインスタンスで各国サイトに対応します。このた
め、.cgiとは設定ファイルの形式が異なります。amazon-auth-proxy.sinatra.yaml
をamazon-auth-proxy.yamlに変えて利用して下さい。

HerokuのようなPaaSでの利用を考慮して、access_keyとsecret_keyは
それぞれ以下の環境変数を優先して使うようになっています:

   AMAZON_ACCESS_KEY
   AMAZON_SECRET_KEY

お使いのPaaSに応じて上記の環境変数を設定して下さい。また、Amazon
側の仕様変更により、AssociateTag(aid)が指定されていない国のAmazon
は利用できなくなっています。自分が管理しているAssociateTagをaid
に指定して下さい。例:

aid:
  jp: cshs-22
  us: tdiarnet-20

Sinatora版では、リバースプロキシサービス向けのrpaproxy.yamlも自動
生成します。aidで指定した国のみのrpaproxy.yamlを生成します。名前
としてamazon-auth-proxy.yamlのnameを利用するので忘れずに書き換えて
下さい。


■権利関係
Copyright (C) 2011 TADA Tadashi <t@tdtds.jp>
You can redistribute it and/or modify it under GPL2.

なお、module HMACは、えろぺおさんのコードを流用しています。
<http://elpeo.jp/diary/20090512.html#p01>
Something went wrong with that request. Please try again.