質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

解決済

【Amazon API】Aamzon のProduct Advertising APIを使って開発するには、Amazonアソシエイト・プログラムの審査に通る必要がありますか?

pecchan
pecchan

総合スコア506

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

1回答

0評価

0クリップ

5041閲覧

投稿2016/08/20 23:26

編集2016/08/21 22:01

Aamzon APIを使った開発をしたいです。

作りたい物は、個人的に利用する商品検索ツールです。
Amazonのアフィリエイトは利用しません。

手順通りに
1.Amazon アソシエイト・プログラムの登録申請を行いました。
2.登録が完了したので、アソシエイトタグ、アクセスキー ID、シークレットアクセスキーが取得出来ました。
3.早速サンプルプログラムを動かしました。コードはサンプルのままですが以下のとおりです。

「「Amazon API」の使い方を紹介します!最安値やランキング取得できるよ④-リクエストURLの作成(PHP)と結果(XML)の確認- 」
https://www.panzee.biz/archives/6262

php

<!DOCTYPE html> <html lang="ja"> <head> <title>Amazon APIテスト</title> <meta charset="utf-8"> </head> <body> <?php //Enter your IDs define("Associate_tag", "*****"); // アソシエイトタグ define("Access_Key_ID", "******************"); // アクセスキー define("Secret_Access_Key", "**************************************"); // シークレットキー ItemSearch("All", "アナと雪の女王"); //Set up the operation in the request function ItemSearch($SearchIndex, $Keywords){ $baseurl = "http://webservices.amazon.com/onca/xml"; // リクエストのパラメータ作成 $params = array(); $params["Service"] = "AWSECommerceService"; $params["AWSAccessKeyId"] = Access_Key_ID; $params["Version"] = "2013-08-01"; $params["Operation"] = "ItemSearch"; $params["SearchIndex"] = $SearchIndex; $params["Keywords"] = $Keywords; $params["AssociateTag"] = Associate_tag; $params["ResponseGroup"] = "ItemAttributes,Offers"; /* 0.元となるリクエスト */ $base_request = ""; foreach ($params as $k => $v) { $base_request .= "&" . $k . "=" . $v; } $base_request = $baseurl . "?" . substr($base_request, 1); echo "【0.元となるリクエスト】<br>" . $base_request . "<br>"; /* 1.タイムスタンプを付ける */ $params["Timestamp"] = gmdate("Y-m-d\TH:i:s\Z"); $base_request .= "&Timestamp=" . $params['Timestamp']; echo "【1.タイムスタンプを付ける】<br>" . $base_request . "<br>"; /* 2.「RFC 3986」形式でエンコーディング */ $base_request = ""; foreach ($params as $k => $v) { $base_request .= '&' . $k . '=' . rawurlencode($v); $params[$k] = rawurlencode($v); } $base_request = $baseurl . "?" . substr($base_request, 1); echo "【2.「RFC 3986」形式でエンコーディング】<br>" . $base_request . "<br>"; /* 3.「&」とか消して改行 */ $base_request = preg_replace("/.*\?/", "", $base_request); $base_request = str_replace("&", "\n", $base_request); echo "【3.「&」とか消して改行】<br>" . $base_request . "<br>"; /* 4.パラメーター名で昇順ソート */ ksort($params); $base_request = ""; foreach ($params as $k => $v) { $base_request .= "&" . $k . "=" . $v; } $base_request = substr($base_request, 1); $base_request = str_replace("&", "\n", $base_request); echo "【4.パラメーター名で昇順ソート】<br>" . $base_request . "<br>"; /* 5.もう一度「&」でつなぐ */ $base_request = str_replace("\n", "&", $base_request); echo "【5.もう一度「&」でつなぐ】<br>" . $base_request . "<br>"; /* 6.3行を頭に追加 */ $parsed_url = parse_url($baseurl); $base_request = "GET\n" . $parsed_url['host'] . "\n" . $parsed_url['path'] . "\n" . $base_request; //$base_request = "GET\nwebservices.amazon.com\n/onca/xml\n" . $base_request; echo "【6.3行を頭に追加】<br>" . $base_request . "<br>"; /* 7.よく分からんエンコーディング */ $signature = base64_encode(hash_hmac('sha256', $base_request, Secret_Access_Key, true)); $signature = rawurlencode($signature); echo "【7.よく分からんエンコーディング】<br>" . $signature . "<br>"; /* 8.「Signature」として最後に追加 */ $base_request = ""; foreach ($params as $k => $v) { $base_request .= "&" . $k . "=" . $v; } $base_request = $baseurl . "?" . substr($base_request, 1) . "&Signature=" . $signature; echo "【8.「Signature」として最後に追加】<br>" . $base_request . "<br>"; echo "<a href=\"" . $base_request . "\" target=\"_blank\">結果</a>"; } ?> </body> </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.そもそも開発だけ行いたい、アフィリエイトは不要です、という人はどうやって開発してる?

以上です。

分かる方や、疑問にお応えしてくださる方
居ましたらどうぞ宜しくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

退会済みユーザー

退会済みユーザー

2016/08/21 23:04

登録時にテストはこっちを使えとか書いてませんか?
pecchan

2016/08/22 00:38

有難う御座います。 ご質問は、 サンプルプログラムのことでしょうか? それともAmazon アソシエイト・プログラムのことでしょうか?
sug_kei1126

2017/06/03 08:21

はじめまして。私も現在同じような疑問を持って質問を読ませていただいたのですが、pecchanさまはどのようなサイトで審査に通過なさったのかお伺いしてもよろしいでしょうか?
pecchan

2017/06/03 22:24 編集

sug_kei1126様 約1年前で具体的なURLは失念しましたが、正式なAmazonのサイトでした。登録にあたりWebサイトが必要かどうかについては、必要でした。ちょっとした開発だけ行いたい場合も、サイトが必要になります。そのサイトがあまりに今作ったようなやつだと審査に通らないようです。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。