v5を使って商品情報を取得したり検索するIT系おじさんのチラシの裏2018年10月~プロフィールAUTHOR:とっちら書きたくなったときに書きたいことを書く雑記ブログ。IT系のネタが多いかも知れません。11:57とっちら1年前の記事に助けられました。14:28とっちらこの記事のお陰で60分録画できるようになりました。16:01とっちらライセンスを明示して貰えると使いやすいのですが。14:37ご回答いただきどうもありがとうございます。21:56とっちら超初心者です。v5のサンプルコードは掲載しているのですが、scratchpad※1の紹介ついでだったり、商品検索ウィジェットの代替品※2のついでだったりして読みづらいのであらためて書き直しました。part3実際、数週間も経つと書いた本人でも忘れるので自分のブログを読み返してコードをコピペしているのですが、過去記事のサンプルだと長過ぎて抜き取る部分を間違えてしまい、なぜ動作しないのか小一時間悩んじゃったんですよね...。共通クラスAmazon公式のスクラッチパッドで出力されるクラスなので、商品情報の取得(GetItems)でも検索(SearchItems)でも使います。$response;}解説これもほとんどスクラッチパッドで出力されたコードなので細かい解説はしませんが、getAmazonItemLookUpという関数を作って、引数に複数のASINを渡せるようにしています。使用例getAmazonItemLookUp('"4865940650","B08X9XY72Z","479813547X"');最大で10個までASINを指定できます。そのままPAAPIに渡しているだけなので、個々のASINはダブルクォーテーションで囲む必要がある点に注意。11個以上指定するとエラーになってしまうため、実運用において大量の商品情報を更新したい場合は1時間に1回、10個分抽出してAPIを叩く、みたいなことをしています。特定カテゴリの商品一覧を取得するここでいうカテゴリとはAmazonのブラウズノードのことです。$response;}解説こちらもスクラッチパッドのコードから(略ただ、ASINから取得する場合とキーワード(もしくはブラウズノード)を指定する場合とでpayloadの部分だけを書き換えるだけやん、とか思ってしまうとハマります。その下のaddHeaderの部分がちょっと違うんですよね。APIはXMLで返ってきて、その中にエラーメッセージもあったため、「あ、渡すパラメータ間違えてた(*ノω・*)テヘ」とすぐに気がついたのですが、PAAPIv5になってからエラーのときは何も返さないのでこんな単純な間違いでもハマるときはハマるんですよねぇ。...1時間近く悩みました。使用例getAmazonSearchItems('PHPプログラミング');キーワードだけを指定すると、全カテゴリを対象に検索をします。'3232342051');2番目の引数(ブラウズノード)だけを指定すると特定のカテゴリ、上記の例では3232342051=書籍Webプログラミングにある商品一覧を取得できます。ブラウズノード番号はAPIで取得する方法もありますが、面倒なのでぼくはAmazonのページを開いてURLを見てブラウズノードを確認しています。それっぽい10桁の数字なのですぐわかるハズ。条件を指定した検索なので、ソート順の指定も可能です。ソース中にも書いてありますが、SortByの部分をRelevanceにすれば関連度の高い順、NewestArrivalsにすれば新着順にできます。どんなソート順が選べるのかは下記のマニュアルを参照すると良いでしょう。v5が返してくれる商品情報の最大値は10個と決まっていますが、ItemPageパラメーターでページ番号を指定できるため、1~10ページまで繰り返しリクエストすることで100件取得したりすることも可能です。ぼくはわりとこの機能を使うので、getAmazonSearchItems関数の3番目の引数にページ番号を持たせています。連続リクエスト回数には注意が必要ですけどね。Amazonから渡されたJSONをデコードする上述したgetAmazonItemLookUpもgetAmazonSearchItemsも返り値はAmazonから戻されるJSONです。そのため、json_decodeでデコードしてクラスに戻してから使いましょう。v5の中で、恐らく最も使うであろうGetItemsとSearchItemsについて、あらためてサンプルコードにしてみました。最近、「curl_multiは確かに爆速だった(がcurl_multi_selectのバグでハマった)」の記事へのアクセス数が増えていたので別のトラブル事例も紹介しておきます。コメント投稿直後ならコメントの編集/削除が可能です。※24時間経過するか、新しく投稿した場合は古い投稿の編集や削除は出来ません。※ブラウザでCookieが受け入れられない場合はこの機能は使えません。非公開にチェックを入れたコメントは管理人のみ閲覧できます。コメント投稿のガイドライン誰もが閲覧できるコメント欄ですので個人が特定できる情報等は書き込まないようにしましょう。他人のHPやブログの文章を掲載する場合は著作権法第32条「引用」の条件を満たすかご確認ください。誹謗中傷にあたる表現などは場合によっては法的な責任を問われる可能性があるためご注意ください。とっちらか~るTOP。