通販サイト「Amazon(アマゾン)」が提供するAPI(amazon web service)の使い方をまとめる。

目標

amazon商品(新品・中古)のDBを作る。

公式サイト

amazon web service (AWS)
http://www.amazon.co.jp/gp/feature.html?docId=451209

2) Amazon Web サービスで何ができますか?
RESTまたはSOAPを利用して、 Amazonで販売されている商品情報を毎日自動的に取得

登録ID(およびデベロッパー・トークン)について

1) 登録IDとは何ですか?
登録IDとは、AWSの開発者アカウントに関連付けられた識別子です。
AWSで提供されているすべてのWebサービスにアクセスするときに、登録IDが必要になります。

2) デベロッパー・トークンとは何ですか?
デベロッパー・トークンとは、過去にAmazonが開発者の皆さまに登録時に割り当てていた識別子です。
現在は、デベロッパー・トークンは発行しておらず、代わりに登録IDを発行しています。
過去に発刊された書籍や記事などでAWSのデベロッパー・トークンについて言及していることがありますが、デベロッパー・トークンを指定する場所に登録IDを指定することができるようになっています。

5) Amazon Web サービスのリクエストのサンプルコードを教えてもらえますか?
主要なリクエスト、パラメータやレスポンスグループの動作テストやサンプルコードの確認は、AWS Zoneをご利用ください。

ディスカッション・ボード(日本語)

http://developer.amazonwebservices.com/connect/forum.jspa?forumID=19

Amazon APIの使い方

AWSから取得するデータはXMLになっている。
Amazonにリクエストを投げて、XMLで受け取る。

  1. PEARのライブラリを使う
  2. PHPで逐次処理する

ID取得

コンテンツサイトを作り、そこでamazonのアフィリエイトを行うには、

Amazon Webサービス登録ID(デベロッパートークン)
Amazon アフィリエイトアソシエイトID

を取得して使う。

PEAR::Service_Amazon

PHPのライブラリ集「PEAR」で、Amazon APIを簡単に利用するための「Service_Amazon」というライブラリが提供されている。

階層構造のデータをデータベースで扱う方法

Amazonの商品カテゴリーは、階層構造になっている。
階層構造のBrowseNodeId?のデータを、どうやってデータベースに格納すべきか?

SQLで木と階層構造のデータを扱う(1)―― 入れ子集合モデル

  • 隣接リストモデル
  • 経路列挙モデル
  • 入れ子集合モデル

古典的な隣接リストモデルは、人間にとって分かりやすいが、SQLが簡素にならず、またパフォーマンスが低いとのこと。
入れ子集合モデルをテストしてみるか?

…と思ったけど、AWSから返されるAncestors(祖先)のデータを見ると、経路列挙モデルの方が合ってるかもしれない。
SQLで木と階層構造のデータを扱う(2)―― 経路列挙モデル

更新が少なく、大量データの検索が必要なケース(例えばデータウェアハウス)に向いているモデルです。

BrowseNodeId?は、大量データであり、時々しか変更されないだろうから、経路列挙モデルが最適かもしれない。

AWS Tips

参考資料

特集:前編 WebサービスをAmazonで知る――ECS 4.0でアフィリエイト (1/5)
http://www.itmedia.co.jp/enterprise/articles/0501/17/news004.html

特集:後編 WebサービスをAmazonで知る――PHPでECS 4.0を使うテクニック (1/5)
http://www.itmedia.co.jp/enterprise/articles/0502/28/news003.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-01-20 (日) 23:29:47 (2124d)