はじめに
AmazonもAPIを公開していて、商品検索などができます。Product Advertising APIと言います。今回はこのAPIを使うために必要な手続きとAPIの使い方を解説します。
APIの利用を開始する準備
まずはアカウントを作成します。既に使っているアカウントでやる場合は飛ばしてOKです。 アカウントを新規作成した人は、アカウントにクレジットカード情報を登録してください。クレジットカード情報を登録しないと、この後のAmazonアソシエイト・プログラムへの登録で審査拒絶されます(3敗)。 Amazonアソシエイト・プログラムに参加します。 適切に入力してください。 こちらも適切に入力してください。アソシエイト・プログラムでアフィリエイトを得るつもりなら、アフィリエイトを得るつもりのホームページをすべて記入してください。Amazonは登録されたホームページ以外からのアフィリエイトを禁止していて、バレた場合はアソシエイト・プログラムからBANされます。ホームページは後から追加もできますので、現状使う予定のホームページだけでOKです。ない場合は先に作りましょう。FC2ブログとか無料で作れるホームページでOKです。 登録が完了すると「アソシエイトID」を割り振られます。これは使いますのでメモしてください。ついでに「支払い方法」も指定しておいてください。 APIを使う準備をします。Product Advertising APIのアカウントを作成します。「アカウント作成」をクリックしてください。ここはポイントですが、アカウントは「新規に」作成してください。メールアドレスは先ほど作ったアドレスでOKです。これは、Amazonのアカウント管理が日本と米国で分かれているため、日本のアカウントでは米国でログインできないためです。 無事アカウントが作れてログインできたなら、以下のページが表示されます。「こちらのリンクから、以下の処理が可能です」をクリックしてください。 最初はポップアップが出ます。「セキュリティ認証情報に進む」をクリックしてください。「IAMユーザー」を作りたいところですが、今のところProduct Advertising APIはIAMユーザーには対応していないそうです。 「新しいアクセスキーの作成」をクリックします。すでにアクセスキーはひとつ登録されているのですが、こいつのシークレットアクセスキーが取得できないのでやむなくです。 ここは大事です。「キーファイルのダウンロード」をクリックしてキーファイルをダウンロードしてください。下の画像にも書いてありますが、シークレットアクセスキーはここで取得しないと二度と手に入りません。Product Advertising APIを使うための必須パラメーターなのでダウンロード必須です。
APIを利用する
こちらに簡単に試せるテストサイトが用意されています。 試しに「ItemSearch」をやってみます。「Marketplace」は日本を指定し、「Associate Tag」にアソシエイトID、「Access Key ID」にアクセスキーID、「Secret Access Key」にシークレットアクセスキーをそれぞれ入力します。あとは適当にフィールドを指定します。とりあえず「SearchIndex」にDVD、「Keywords」にSuper Naturalとでも入力しておきます。黄色の「Run Request」をクリックすれば、XMLで結果が返ってきます。 ページ下部にPHPとJavaとRubyOnRailsのサンプルプログラムが自動生成されるので、APIの利用は非常に簡単に始められます。ちょっと古いですが公式にデベロッパーガイドもあって、いくつかサンプルプログラムもあります。SDKもあるみたいですが、まだ確認できていません。
おわりに
AmazonのAPIを利用するときに個人的にハマったのは、開発用アカウントのために新規にアカウントを作成したときのAmazonアソシエイト・プログラムの申請拒絶でした。これはクレジットカードをアカウントに登録したら解決しました。Bot的なものを拒絶するための措置だと思います。それ以外は非常にわかりやすくなっています。少し調べた限りだとJavaのSDKは超しょぼいものしかないみたいなので、そこが少し残念です。次はAmazonのAPIを使ってMashupを作ってみようと思います。
2016/8/1 13:00 追記
本記事のプロセスで審査拒絶をくらいました。運営に問い合わせた所
このたびお客様のページを拝見いたしましたが、残念ながら当プログラムでの審査基準に合致しなかったため、前回のご案内をいたしました。また、誠に申し訳ございませんが、個別の審査内容、承認不可の理由についてはご案内いたしかねますことをご了承くださいますようお願いいたします。
ということです。審査基準はこちらにあって
■ Webサイトが未完成または作成したばかりであるため審査が行えない場合
- 記事数や投稿数などのコンテンツが極めて少ない
- 長い間更新がない
- コンテンツのほとんどが転載や広告で構成されており、サイトにオリジナリティーがない
■ 身元情報が不十分である場合
- 氏名が本名でない (姓・名のどちらかのみ、ニックネーム、サイトと関係が明確でないグループ名)
- 電話番号が完全でない
- アカウント情報の電話番号の初めに「+81」がついている
- 住所が完全でない、または架空の住所である
※住所確認のため、Amazon.co.jpの配送先情報を確認させて頂く場合がございます。
■ リンクを使用するサイト・目的が不明瞭である場合
- 入力されたURLに誤りがあり、サイトを確認できない
- 閲覧規制のあるコンテンツを含み、サイト内容を確認できない
- 他者(社)が運営するWebサイトやURLを使用している
- サイト名やドメイン名の中に、「amazon」「javari」「kindle」やその変形、またはスペルミスを含んでいる
※SNSでこれらを含むユーザー名を利用されることもお断りしております。
- サイト説明が不十分
※「test」「あああ」「商品名」のみ等は、サイト説明として不十分または不適切なものと判断致します。
■ サイト内の価格や在庫標記により、閲覧者に誤解を与える可能性がある場合
※「最安値」「在庫有り」等、可変的な情報には、情報取得時の日付や情報に相違が出る可能性を示す記載が必要です。
■ 法令または他者(社)の権利に対する侵害または違反がある場合
- 著作権侵害が認められる
※使用許諾を得ていない画像や歌詞の転載等が含まれる場合も参加をお断りする場合がございます。
- 医薬品、医療機器等の品質、有効性及び安全性の確保等に関する法律 (旧薬事法) 違反が認められる
- その他違法な内容のコンテンツが含まれている
※明確な違反や侵害が確認できない場合でも、これらの事由の存在が疑われる場合には、参加をお断りする場合がございます。
■ 情報商材コンテンツ、情報商材サイトへ遷移するリンクの掲載がある場合
■ 露骨な性的描写がある場合
■ 紹介料の使用目的が寄付・支援である場合
■ 未成年の方のお申し込み
■ その他の理由で、運営規約に違反するまたは参加が不適当であると当社が判断する場合
心当たりがあるとすると「アカウント情報の電話番号の初めに「+81」がついている」ですが、となると日本人はすべて対象外ということになってしまいます。うーん。申請したURLはこのブログですので、他は問題ないと思うのですが・・・。
2016/8/1 16:25 追記
ネットで調べた所、アソシエイト・プログラムの承認は相当厳しいらしいですね。よほどの大手企業や有名ブロガー以外はProduct Advertising APIを使えないと考えたほうが良いかもしれません。楽天やDMM、YahooもAPIを公開しているので、そちらを使ってみます。