URLに認証用のコードを含める必要があるため、少し手間がかかります。
処理手順についてはAuthenticating REST Requestsに詳しい解説があります。また、Signed Requests Helperで、この処理を模擬できます。
define( "AWS_ENDPOINT", "http://ecs.amazonaws.jp/onca/xml" ); define( "AWS_SERVICE", "AWSECommerceService" ); define( "AWS_ACCESS_KEY", "DUMMY" ); define( "AWS_SECRET_ACCESS_KEY","dummy" ); define( "AWS_ASSOCIATE_TAG", "name-10" ); define( "AWS_VERSION", "2009-07-01" ); // リクエストURLの取得 function GetRequestUrl( $operation, $searchIndex, $keywords, $responseGroup, $sort ) { $request = array( "Service" =>AWS_SERVICE, "AWSAccessKeyId" =>AWS_ACCESS_KEY, "AssociateTag" =>AWS_ASSOCIATE_TAG, "Version" =>AWS_VERSION, "Operation" =>$operation, "SearchIndex" =>$searchIndex, "Keywords" =>$keywords, "ResponseGroup" =>$responseGroup, "Timestamp" =>gmdate( "Y-m-d\TH:i:s\Z" ), ); if( $searchIndex != "All" && $searchIndex != "Blended" ) { $request[ "Sort" ] = $sort; } // アルファベット順にソートする ksort( $request ); $parameter = ""; foreach( $request as $key=>$value ) { // 値をURLエンコードして キーと連結する $parameter .= $key."=".rawurlencode( $value )."&"; } $parameter = rtrim( $parameter, "&" ); $url = parse_url( AWS_ENDPOINT ); $sign = "GET\n" ."{$url[ 'host' ]}\n" ."{$url[ 'path' ]}\n" .$parameter; // Secret Access Keyを使用し署名を作成する $signature = base64_encode( hash_hmac( "sha256", $sign, AWS_SECRET_ACCESS_KEY, TRUE ) ); return AWS_ENDPOINT."?{$parameter}&Signature=".rawurlencode( $signature ); }
結果はXML形式ですので、たとえばsimplexml_load_file()を用いることで簡単に処理できます。上記で作成したURLにアクセスすると、次のような結果が返されます。
SimpleXMLElement Object ( [OperationRequest] => SimpleXMLElement Object ( [RequestId] => dummy [Arguments] => SimpleXMLElement Object ( [Argument] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [Name] => Operation [Value] => ItemSearch ) ) ) ) [RequestProcessingTime] => 0.5050370000000000 ) [Items] => SimpleXMLElement Object ( [Request] => SimpleXMLElement Object ( [IsValid] => True [ItemSearchRequest] => SimpleXMLElement Object ( [Condition] => New [DeliveryMethod] => Ship [Keywords] => パソコン [MerchantId] => Amazon [ResponseGroup] => Medium [ReviewSort] => -SubmissionDate [SearchIndex] => Electronics [Sort] => price ) ) [TotalResults] => 24793 [TotalPages] => 2480 [Item] => Array ( [0] => SimpleXMLElement Object ( [ASIN] => B00008B0TJ [DetailPageURL] => http://www.amazon.co.jp/%E3%82%A8%E3%83%97%E3%82%BD%E3%83%B3-EPSON [ItemLinks] => SimpleXMLElement Object ( [ItemLink] => Array ( [0] => SimpleXMLElement Object ( [Description] => Add To Wishlist [URL] => http://www.amazon.co.jp/gp/registry/wishlist/add-item.html ) [1] => SimpleXMLElement Object ( [Description] => Tell A Friend [URL] => http://www.amazon.co.jp/gp/pdp/taf/ ) [2] => SimpleXMLElement Object ( [Description] => All Customer Reviews [URL] => http://www.amazon.co.jp/review/product/ ) [3] => SimpleXMLElement Object ( [Description] => All Offers [URL] => http://www.amazon.co.jp/gp/offer-listing/ ) ) ) [SalesRank] => 1327 [SmallImage] => SimpleXMLElement Object ( [URL] => http://ecx.images-amazon.com/images/I/21EFEPRAMAL._SL75_.jpg [Height] => 75 [Width] => 75 ) [MediumImage] => SimpleXMLElement Object ( [URL] => http://ecx.images-amazon.com/images/I/21EFEPRAMAL._SL160_.jpg [Height] => 150 [Width] => 150 ) [LargeImage] => SimpleXMLElement Object ( [URL] => http://ecx.images-amazon.com/images/I/21EFEPRAMAL.jpg [Height] => 150 [Width] => 150 ) [ImageSets] => SimpleXMLElement Object ( [ImageSet] => SimpleXMLElement Object ( [@attributes] => Array ( [Category] => primary ) [SwatchImage] => SimpleXMLElement Object ( [URL] => http://ecx.images-amazon.com/images/I/21EFEPRAMAL._SL30_.jpg [Height] => 30 [Width] => 30 ) [SmallImage] => SimpleXMLElement Object ( [URL] => http://ecx.images-amazon.com/images/I/21EFEPRAMAL._SL75_.jpg [Height] => 75 [Width] => 75 ) [ThumbnailImage] => SimpleXMLElement Object ( [URL] => http://ecx.images-amazon.com/images/I/21EFEPRAMAL._SL75_.jpg [Height] => 75 [Width] => 75 ) [TinyImage] => SimpleXMLElement Object ( [URL] => http://ecx.images-amazon.com/images/I/21EFEPRAMAL._SL110_.jpg [Height] => 110 [Width] => 110 ) [MediumImage] => SimpleXMLElement Object ( [URL] => http://ecx.images-amazon.com/images/I/21EFEPRAMAL._SL160_.jpg [Height] => 150 [Width] => 150 ) [LargeImage] => SimpleXMLElement Object ( [URL] => http://ecx.images-amazon.com/images/I/21EFEPRAMAL.jpg [Height] => 150 [Width] => 150 ) ) ) [ItemAttributes] => SimpleXMLElement Object ( [Binding] => エレクトロニクス [Brand] => エプソン [EAN] => 4965957830369 [Feature] => Array ( [0] => インクジェットカートリッジ [1] => 1個 ) [Label] => エプソン [ListPrice] => SimpleXMLElement Object ( [Amount] => 1260 [CurrencyCode] => JPY [FormattedPrice] => ¥ 1,260 ) [Manufacturer] => エプソン [MPN] => ICBK21 [PackageDimensions] => SimpleXMLElement Object ( [Height] => 87 [Length] => 472 [Weight] => 13 [Width] => 362 ) [PackageQuantity] => 1 [ProductGroup] => CE [ProductTypeName] => INK_OR_TONER [Publisher] => エプソン [ReleaseDate] => 2001-10-05 [Studio] => エプソン [Title] => EPSON ICBK21(モノクロインクカートリッジ) ) [OfferSummary] => SimpleXMLElement Object ( [LowestNewPrice] => SimpleXMLElement Object ( [Amount] => 250 [CurrencyCode] => JPY [FormattedPrice] => ¥ 250 ) [LowestUsedPrice] => SimpleXMLElement Object ( [Amount] => 1 [CurrencyCode] => JPY [FormattedPrice] => ¥ 1 ) [LowestRefurbishedPrice] => SimpleXMLElement Object ( [Amount] => 630 [CurrencyCode] => JPY [FormattedPrice] => ¥ 630 ) [TotalNew] => 26 [TotalUsed] => 3 [TotalCollectible] => 0 [TotalRefurbished] => 6 ) [EditorialReviews] => SimpleXMLElement Object ( [EditorialReview] => Array ( [0] => SimpleXMLElement Object ( [Source] => Product Description [Content] => 黒/染料インクハイライトからシャドーまで、 [IsLinkSuppressed] => 0 ) [1] => SimpleXMLElement Object ( [Source] => Amazon.co.jp 商品紹介 [Content] => 対応機種:PM-930C、PM-940C、PM-950C、PM-970C、PM-980C [IsLinkSuppressed] => 0 ) ) ) ) ) ) )