本エントリーは、PA-API4.0時点のものとなります。API)と移行するため、これからPA-APIをご利用の方は、以下のv5.0の記事をご参考ください。v5.0」の使い方!前回までで、アソシエイトタグアクセスキーシークレットキーを取得することができました。結果を受け取ることができるようになります。ここが結構面倒なんですよね。今回は、まずは概要だけを紹介していきます。「○○の情報の結果が欲しい」とAmazonにお願いすると、AmazonからXML形式で結果を返してくれるといったものです。雑な図ですが、イメージとしてはこんな感じです。リクエストは、GET形式のURLで色々なパラメーターを付けて送ります。以下のような感じです。(今回はこの辺の詳細は説明しませんが。)とりあえず、Amazonへリクエストを送るには、こういった何かしらのURLを作る必要があると覚えておいてください。ちなみに、http://webservices.amazon.com/onca/xmlの部分はエンドポイントと呼ばれる部分ですが、国ごとに異なります。日本のamazonサイトからの結果を返したい場合は、http://webservices.amazon.com/onca/xmlをhttp://ecs.amazonaws.jp/onca/xmlに書き換えてご利用ください。http://ecs.amazonaws.com/onca/xmlhttps://aws.amazonaws.com/onca/xmlリクエストURL作成の概要Amazonへリクエストを送るには、URLを作らないといけないことが分かったかと思います。AmazonはそのURLの作り方がかなり複雑なんですよね。今回はその概要だけ説明します。(実際のプログラミングについては、次回説明しますので、概要が必要でない方は飛ばしていただいてもかまいません。)以下の手順をプログラムで行うと思っていてください。「?」でつなぎ、パラメーターが続くといった形です。[URL]?[パラメーター1]=値&[パラメーター2]=値&[パラメーター3]=値・・・(いくつでも)のような感じです。パラメーターは「&」でつなぎます。今回は、上にも挙げたのと同じhttp://webservices.amazon.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Operation=ItemLookup&ItemId=0679722769&ResponseGroup=ItemAttributes,Offers,Images,Reviews&Version=2009-01-06このリクエストをもとにしていきます。Amazonから結果を返してもらうには、こいつを変形していかなくてはいけないんですね。以下からがAmazon公式に載っている手順です。1.タイムスタンプを付けるパラメーターとしてタイムスタンプを追加します。UTC(協定世界時)で、形式は「2014-09-09T12:35:00Z」のような形です。3986」形式でパラメーターの値をエンコーディングわたしなんかは、この辺で「なんのこっちゃ」って感じでした。なんか日本語や一部の記号を16進数にしてくれてるみたいですね。アルファベットはそのままです。「&」のところで、改行していきます。(「&」も消しますよ。)【変更後】Service=AWSECommerceServiceAWSAccessKeyId=AKIAIOSFODNN7EXAMPLEOperation=ItemLookupItemId=0679722769ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviewsVersion=2009-01-06Timestamp=2009-01-01T12%3A00%3A00Z4.パラメーター名で昇順ソートパラメーターでソートします。昇順なので、Aから順番ですね。【変更後】AWSAccessKeyId=AKIAIOSFODNN7EXAMPLEItemId=0679722769Operation=ItemLookupResponseGroup=ItemAttributes%2COffers%2CImages%2CReviewsService=AWSECommerceServiceTimestamp=2009-01-01T12%3A00%3A00ZVersion=2009-01-065.もう一度「&」でつなぐソートした後、また「&」でつないでいきます。【変更後】AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-066.3行を頭に追加GETwebservices.amazon.com/onca/xmlの3行を頭に追加します。【変更後】GETwebservices.amazon.com/onca/xmlAWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-067.よく分からんエンコーディングシークレットキーを使って「HMAC-SHA256」でハッシュ値を算出するみたいです。(日本語が正しいかも怪しい・・・。)この辺もPHPの関数があるので、理解してなくても作ることはできます。先ほど「HMAC-SHA256」で作られた値を、パラメーター「Signature」としてリクエストURLの最後に追加します。[URL]?[パラメーター1]=値&[パラメーター2]=値&[パラメーター3]=値・・・&Signature=[7で作られた値]のような感じです。リンクこの手順で作られたURLがリクエストURLこの面倒な手順を踏んで作られたURLがAmazonへ送るURLです。元となるURLを作成したら、プログラムで変形に次ぐ変形をさせてリクエストURLを作っていく感じですね。@haniwa008リクエストURL作成の概要の紹介でした!次は実際に動くプログラムを作っていきます。以下エントリーは、PA-API4.0時点のものとなります。API)と移行するため、これからPA-APIをご利用の方は、以下のv5.0の記事をご参考ください。リンクこのページが役に立ったらいいね!お願いします運営の励みになります...。API」の使い方!2-アクセスキーとシークレットキーの取得...はにわまんWordPressが好きなフリーのWebコーダー。300件以上のWordPressカスタマイズを対応してきました。