amazonAPIを使ってamazonの画像を取得する関数を書いてみた
amazonの商品画像(110*160サイズ)をamazonidから取得する関数です。
この関数ではamazonAPIを使っているので、amazonAPIのユーザー登録を済ませる必要があります。
ユーザ登録でもらったIDを$keyidとして使えばOK
また、1アクセスごとにAPIを呼ぶのは非効率のため
Cache_Liteを使ってキャッシュに保存しておきます。
これでページの処理が俄然軽くなる!
そんな混合技な関数。
$amazonid = 4484031019; //10桁のアマゾン商品ID public static function getAmazonImage($amazonid) { //ライブラリを読み込む require_once "Cache/Lite.php"; $option = array( "cacheDir" => sfConfig::get('sf_cache_dir')."/lite/", "lifeTime" => "86400" ); //Cacheがあれば読み込み、無ければAPIにアクセスする $cache = new Cache_Lite($option); if ($data = $cache->get($amazonid, "cache")) { return $data; } else { $keyid = 'hogehogehugahuga'; $url = "http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&SubscriptionId=".$keyid."&Operation=ItemLookup&ItemId=".$amazonid."&ResponseGroup=Medium"; $xml = simplexml_load_file($url); $amazonitem = array() $amazonitem["image"] = $xml->Items->Item->MediumImage->URL; //画像URL $amazonitem["link"] = $xml->Items->Item->DetailPageUR; //アマゾンのページへのURL(アフィリエイト) //結果をCacheに保存する $cache->save($amazonitem, $amazonid, "cache"); return $amazonitem; } }