| <?php ######################################################################## # アマゾン Services/Amazonの実装編 ######################################################################## // IDとキー。自分の情報を設定してください。 define("SECRET_ACCESS_KEY","secret_access_key"); define("SUBSCRIPTION_ID","subscription_id"); define("ASSOCIATE_ID","associate-22"); // ライブラリ require_once("Services/Amazon.php"); // Services/Amazonのインストール先に合わせて変更してください。 require_once('hmac_sha256.php'); //---------------------------------------------- // Services_Amazonの暗号化をオーバーライド //---------------------------------------------- class Services_AmazonMHASH extends Services_Amazon { // オーバーライド関数 function _hash($string_to_sign, $secret_access_key) { if (function_exists('hash_hmac')) { echo "use hash_hmac<br>"; return hash_hmac('sha256', $string_to_sign, $secret_access_key, true); } elseif (function_exists('mhash')) { echo "use mhash<br>"; return mhash(MHASH_SHA256, $string_to_sign, $secret_access_key); } // 自前のハッシュ関数。 echo "use local HMAC_SHA256<br>"; $hmac_sha256 = new HMAC_SHA256($secret_access_key); return $hmac_sha256->hmac($string_to_sign); } } // アマゾンサービスのクラスを得る。オーバライドした方のクラスを使います。 $amazon = new Services_AmazonMHASH(SUBSCRIPTION_ID, SECRET_ACCESS_KEY, ASSOCIATE_ID); $amazon->setLocale("JP"); // アマゾンで検索する。 $item_list = $amazon->ItemSearch("VideoGames", array( "BrowseNode" => "15782591", "Sort" => '-releasedate', "ResponseGroup" => 'Small,ItemAttributes,Images,OfferFull,Reviews,SalesRank', "ItemPage" => 1)); // エラー? if (PEAR::isError($item_list)) { // 結果なし? if( FALSE !== mb_strpos($item_list->message,"リクエストに該当する結果がありません") ) { } else { // エラー echo( $item_list->message ); } } // 結果をダンプ $v = var_export($item_list, true); $v = str_replace(" "," ",$v); $v = str_replace("\n","<br>",$v); echo $v; ?> |