Aamzon APIを使った開発をしたいです。
作りたい物は、個人的に利用する商品検索ツールです。
Amazonのアフィリエイトは利用しません。
手順通りに
1.Amazon アソシエイト・プログラムの登録申請を行いました。
2.登録が完了したので、アソシエイトタグ、アクセスキー ID、シークレットアクセスキーが取得出来ました。
3.早速サンプルプログラムを動かしました。コードはサンプルのままですが以下のとおりです。
「「Amazon API」の使い方を紹介します!最安値やランキング取得できるよ④-リクエストURLの作成(PHP)と結果(XML)の確認- 」
https://www.panzee.biz/archives/6262
php
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<title>Amazon APIテスト</title> 5<meta charset="utf-8"> 6</head> 7 8<body> 9 10<?php 11 12//Enter your IDs 13define("Associate_tag", "*****"); // アソシエイトタグ 14define("Access_Key_ID", "******************"); // アクセスキー 15define("Secret_Access_Key", "**************************************"); // シークレットキー 16 17ItemSearch("All", "アナと雪の女王"); 18 19//Set up the operation in the request 20function ItemSearch($SearchIndex, $Keywords){ 21 22 $baseurl = "http://webservices.amazon.com/onca/xml"; 23 24 // リクエストのパラメータ作成 25 $params = array(); 26 $params["Service"] = "AWSECommerceService"; 27 $params["AWSAccessKeyId"] = Access_Key_ID; 28 $params["Version"] = "2013-08-01"; 29 $params["Operation"] = "ItemSearch"; 30 $params["SearchIndex"] = $SearchIndex; 31 $params["Keywords"] = $Keywords; 32 $params["AssociateTag"] = Associate_tag; 33 $params["ResponseGroup"] = "ItemAttributes,Offers"; 34 35 /* 0.元となるリクエスト */ 36 $base_request = ""; 37 foreach ($params as $k => $v) { 38 $base_request .= "&" . $k . "=" . $v; 39 } 40 $base_request = $baseurl . "?" . substr($base_request, 1); 41 echo "【0.元となるリクエスト】<br>" . $base_request . "<br>"; 42 43 /* 1.タイムスタンプを付ける */ 44 $params["Timestamp"] = gmdate("Y-m-d\TH:i:s\Z"); 45 $base_request .= "&Timestamp=" . $params['Timestamp']; 46 echo "【1.タイムスタンプを付ける】<br>" . $base_request . "<br>"; 47 48 /* 2.「RFC 3986」形式でエンコーディング */ 49 $base_request = ""; 50 foreach ($params as $k => $v) { 51 $base_request .= '&' . $k . '=' . rawurlencode($v); 52 $params[$k] = rawurlencode($v); 53 } 54 $base_request = $baseurl . "?" . substr($base_request, 1); 55 echo "【2.「RFC 3986」形式でエンコーディング】<br>" . $base_request . "<br>"; 56 57 /* 3.「&」とか消して改行 */ 58 $base_request = preg_replace("/.*\?/", "", $base_request); 59 $base_request = str_replace("&", "\n", $base_request); 60 61 echo "【3.「&」とか消して改行】<br>" . $base_request . "<br>"; 62 63 /* 4.パラメーター名で昇順ソート */ 64 ksort($params); 65 66 $base_request = ""; 67 foreach ($params as $k => $v) { 68 $base_request .= "&" . $k . "=" . $v; 69 } 70 $base_request = substr($base_request, 1); 71 $base_request = str_replace("&", "\n", $base_request); 72 echo "【4.パラメーター名で昇順ソート】<br>" . $base_request . "<br>"; 73 74 /* 5.もう一度「&」でつなぐ */ 75 $base_request = str_replace("\n", "&", $base_request); 76 echo "【5.もう一度「&」でつなぐ】<br>" . $base_request . "<br>"; 77 78 /* 6.3行を頭に追加 */ 79 $parsed_url = parse_url($baseurl); 80 $base_request = "GET\n" . $parsed_url['host'] . "\n" . $parsed_url['path'] . "\n" . $base_request; 81 82 //$base_request = "GET\nwebservices.amazon.com\n/onca/xml\n" . $base_request; 83 echo "【6.3行を頭に追加】<br>" . $base_request . "<br>"; 84 85 /* 7.よく分からんエンコーディング */ 86 $signature = base64_encode(hash_hmac('sha256', $base_request, Secret_Access_Key, true)); 87 $signature = rawurlencode($signature); 88 echo "【7.よく分からんエンコーディング】<br>" . $signature . "<br>"; 89 90 /* 8.「Signature」として最後に追加 */ 91 $base_request = ""; 92 foreach ($params as $k => $v) { 93 $base_request .= "&" . $k . "=" . $v; 94 } 95 $base_request = $baseurl . "?" . substr($base_request, 1) . "&Signature=" . $signature; 96 echo "【8.「Signature」として最後に追加】<br>" . $base_request . "<br>"; 97 98 echo "<a href=\"" . $base_request . "\" target=\"_blank\">結果</a>"; 99} 100 101?> 102 103</body> 104</html>
上記を実行するとエラーが返りました。
エラー内容↓
Your [わたしのアクセスキー ID] is not registered as an Amazon Associate. Please register as an associate at https://affiliate-program.amazon.com/gp/associates/join/landing/main.html.
エラーについて調べると、
(アクセスキーの認証はできてるけど)アクセスキーがAmazonアソシエイトのものとして登録されていない
というエラーのようです。
心当たりとして
Amazon アソシエイト・プログラムの登録は行いましたが、審査には落ちてしまいました。
理由は、「 Webサイトが未完成または作成したばかりであるため審査が行えない場合」に当てはまったようです。
ここで幾つか疑問が生じました。
疑問1.AmazonAPI(Product Advertising API)を使った開発、具体的にはAmazonへの接続・認証には、Amazon アソシエイト・プログラムの登録だけでなく申請を通る必要がある?
疑問2.だとした場合、今回の私のように、登録に使用するWebサイトが無い(あっても新規サイトしかない)人は、どうしてる?
疑問3.そもそも開発だけ行いたい、アフィリエイトは不要です、という人はどうやって開発してる?
以上です。
分かる方や、疑問にお応えしてくださる方
居ましたらどうぞ宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー