【プログラミング】アマゾン API を利用して PHP で商品情報を取得する方法 その2【ソースコード付き】

アマゾンのAPIを利用して商品情報を取得したいけど、どうやったらいいんだろう?
PHPで作れないかな?

昨日の記事の続きです。
この記事はこんな疑問にお答えします。

本記事の内容
・アマゾンのAPIをレスポンスとは?
・レスポンス電文の処理方法
・ソースコードの公開

■アマゾンのAPIをレスポンスとは?

「よし、アマゾンのAPIのリクエスト電文の作り方はわかったぞ」
「アマゾンのAPIのリクエスト電文は作成するのに苦労するからね」
「ここまでできれば後は受け取った電文を処理するプログラムが必要だな」
「昨日のプログラムと合わせて処理できるようにしよう」

アマゾンのAPIのリクエスト電文はなかなか理解しづらいから大変です。

でも、このリクエスト電文を送れば、アマゾンの商品情報を取得できるようになります。

そこで今日は、そのレスポンスの電文について理解していきましょう。

アマゾンのレスポンス電文はXMLという形式で返ってきます。

XML : Extensible Markup Language

基本的な構文規則を共通とすることで、任意の用途向けの言語に拡張することを容易としたことが特徴のマークアップ言語の総称である。

ウィペディアより

なんか、聞いたことあるような言葉ですよね。

そうです。HTMLですよね。

HTMLがインターネット上のサイトを表示することに特化して使われているのに対し、XMLはデータの表示形式として使われ、今だとAPIなどのデータのやり取りで使われたりします。

その代表格がアマゾンのAPIでのデータというわけです。

どんなものかというと実際のデータを見てもらった方がわかるでしょう。

XML



<商品情報>
 <商品A>
  <商品名>ぬいぐるみ
  <メーカー>おもちゃ屋
  <小売価格>780
 
 <商品B>
  <商品名>フィギュア
  <メーカー>人形商事
  <小売価格>1200
 

■レスポンス電文の処理方法

昨日のアマゾンのAPIのリクエスト電文を作成するプログラムを
「amazon_Keywords.php」
として用意します。

XMLの形式のデータを処理する関数が用意されていますので、それを使ってデータを処理します。

simplexml_load_string ですが、XML形式のデータをパース(解析)してオブジェクトに代入します。
といってもよくわからないですよね。

このあたりの言葉の意味は、Progate などで勉強してもらえばよいかと思いますが、要はデータとして扱いやすくしてくれるものと理解してください。

こんな感じです。
$amazon_xml = simplexml_load_string(file_get_contents($base_request));
$amazon_xml->Items->Item as $item

上記だと、Items という項目の中の Item というを取り出して変数itemに代入する、といったことをしています。

こうすることによって、XMLで表現されたデータも取り扱えるようになります。

慣れるまではわかりづらいと思いますが、頑張って理解してください。

■ソースコードの公開

というわけで、なんだかよく理解できないという方もいるかとは思いますが、まずはコピペで構わないので自分の環境下でやってみましょう。

HTML




  
    
    
    
    amazon item api
    
  

  
    

Please select category & input keyword

category :
全て アパレル&ファッション雑貨 自動車 ベビー&マタニティ コスメ 和書 DVD 家電&カメラ
ホビー ホーム&キッチンホビー ミュージック スポーツ&アウトドア おもちゃ TVゲーム 時計

keyword :

Items->Item as $item) { // ASIN $item_ASIN = $item->ASIN; // 商品名 $item_title = $item->ItemAttributes->Title; // バインディング $item_binding = $item->ItemAttributes->Binding; // EAN $item_EAN = $item->ItemAttributes->EANList->EANListElement; // LowestNewPrice $item_Amount = $item->OfferSummary->LowestNewPrice->Amount; // LargeImage $item_LargeImageURL = $item->LargeImage->URL; // メーカー $item_manufacturer = $item->ItemAttributes->Mnufacturer; // 商品のURL $item_url = $item->DetailPageURL; // 商品の画像 $item_image = $item->MediumImage->URL; // メーカー $item_maker = $item->Manufacturer; // 表示する echo "Item Information"; echo "
  • ASIN : ".$item_ASIN."
  • "; echo "
  • URL : ".$item_title."

  • "; echo "
  • Maker : ".$item_manufacturer."
  • "; echo "
  • Category : ".$item_binding."
  • "; echo "
  • JAN : ".$item_EAN."
  • "; echo "
  • Yen : ".$item_Amount."
  • "; if (isset($item_LargeImageURL)) { // サムネイル画像がある場合 echo "商品画像"; } else { // サムネイル画像がない場合 echo "http://bit.ly/29Ikwlm"; } echo"
    "; } } ?>

    プログラミングの教科書やネットの教室でサンプルを作っていても、実際のビジネスで役に立つようなもの(つまりは実戦向き)をやってみないとなかなかスキルは身につかないと思います。

    実戦あるのみです。

    1回の実戦でも、とてつもない学びがあります。

    ぜひチャレンジしてみてください。

    スポンサードサーチ

    Web API: The Good Parts

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です