PEAR::Services_Amazon
ItemIdを複数指定する場合は、配列にする。
$itemId = array(
'4569675204'
, '4048684116'
, '4899772750'
);
メソッドはItemLookup(そのまんま)。
$result = $amazon->ItemLookup($itemId, $options);
- 第一引数 ItemId(複数の場合は配列で)
- 第二引数 リクエストパラメータ(配列で)
ResponseGroupはカンマで区切って複数指定できる。
$options = array(
'AssociateTag' => PAAPI_ACCTAG
, 'ResponseGroup' => 'Medium,OfferSummary'
, 'Condition' => 'All'
, 'IdType' => 'ASIN'
);
例)
<?php
require_once('Services/Amazon.php');
define('PAAPI_ACCTAG', 'ほにゃらら');
define('PAAPI_ACCKEY', 'ほげほげ');
define('PAAPI_SECKEY', 'ふがふが');
$amazon = new Services_Amazon(PAAPI_ACCKEY, PAAPI_SECKEY);
$amazon->setLocale('JP');
$amazon->setVersion('2011-08-01');
$itemId = array(
'4569675204'
, '4048684116'
, '4899772750'
);
$options = array(
'AssociateTag' => PAAPI_ACCTAG
, 'ResponseGroup' => 'Medium'
, 'Condition' => 'All'
, 'IdType' => 'ASIN'
);
$result = $amazon->ItemLookup($itemId, $options);
if (PEAR::isError($result)) {
echo 'リクエストの送信に失敗してる';
} else if (!isset($result['Request']['IsValid'])) {
echo 'なんかおかしい';
exit();
} else if (strcmp($result['Request']['IsValid'], 'True') != 0) {
echo 'Amazonさんから何らかのエラーをくらった';
}
print_r($result);
?>
レスポンス例)
Array
(
[Request] => Array
(
[IsValid] => True
[ItemLookupRequest] => Array
(
[Condition] => All
[IdType] => ASIN
[ItemId] => Array
(
[0] => 4569675204
[1] => 4899772750
[2] => 4048684116
)
[ResponseGroup] => Array
(
[0] => Medium
)
)
)
[Item] => Array
(
[0] => Array
(
[ASIN] => 4569675204
[DetailPageURL] => http://www.amazon.co.jp/%E3%82%B9%E3%83%86%E3%82%A3%E3%83%BC%E3%83%96%E3%83%BB%E3%82%B8%E3%83%A7%E3%83%96%E3%82%BA%E5%90%8D%E8%AA%9E%E9%8C%B2-PHP%E6%96%87%E5%BA%AB-%E6%A1%91%E5%8E%9F-%E6%99%83%E5%BC%A5/dp/4569675204%3FSubscriptionId%3DAKIAIXQXZGDVGMGTXFVQ%26tag%3Dctrhythm-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4569675204
[ItemLinks] => Array
(
[ItemLink] => Array
(
[0] => Array
(
[Description] => Add To Wishlist
[URL] => http://www.amazon.co.jp/gp/registry/wishlist/add-item.html%3Fasin.0%3D4569675204%26SubscriptionId%3DAKIAIXQXZGDVGMGTXFVQ%26tag%3Dctrhythm-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D5143%26creativeASIN%3D4569675204
)
[1] => Array
(
[Description] => Tell A Friend
[URL] => http://www.amazon.co.jp/gp/pdp/taf/4569675204%3FSubscriptionId%3DAKIAIXQXZGDVGMGTXFVQ%26tag%3Dctrhythm-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D5143%26creativeASIN%3D4569675204
)
[2] => Array
(
[Description] => All Customer Reviews
[URL] => http://www.amazon.co.jp/review/product/4569675204%3FSubscriptionId%3DAKIAIXQXZGDVGMGTXFVQ%26tag%3Dctrhythm-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D5143%26creativeASIN%3D4569675204
)
[3] => Array
(
[Description] => All Offers
[URL] => http://www.amazon.co.jp/gp/offer-listing/4569675204%3FSubscriptionId%3DAKIAIXQXZGDVGMGTXFVQ%26tag%3Dctrhythm-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D5143%26creativeASIN%3D4569675204
)
)
)
[SalesRank] => 30
[SmallImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/41zJJJIo-nL._SL75_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 75
)
[Width] => Array
(
[Units] => pixels
[_content] => 52
)
)
[MediumImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/41zJJJIo-nL._SL160_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 160
)
[Width] => Array
(
[Units] => pixels
[_content] => 111
)
)
[LargeImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/41zJJJIo-nL._SL500_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 500
)
[Width] => Array
(
[Units] => pixels
[_content] => 347
)
)
[ImageSets] => Array
(
[ImageSet] => Array
(
[0] => Array
(
[Category] => primary
[SwatchImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/41zJJJIo-nL._SL30_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 30
)
[Width] => Array
(
[Units] => pixels
[_content] => 21
)
)
[SmallImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/41zJJJIo-nL._SL75_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 75
)
[Width] => Array
(
[Units] => pixels
[_content] => 52
)
)
[ThumbnailImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/41zJJJIo-nL._SL75_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 75
)
[Width] => Array
(
[Units] => pixels
[_content] => 52
)
)
[TinyImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/41zJJJIo-nL._SL110_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 110
)
[Width] => Array
(
[Units] => pixels
[_content] => 76
)
)
[MediumImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/41zJJJIo-nL._SL160_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 160
)
[Width] => Array
(
[Units] => pixels
[_content] => 111
)
)
[LargeImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/41zJJJIo-nL._SL500_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 500
)
[Width] => Array
(
[Units] => pixels
[_content] => 347
)
)
)
[1] => Array
(
[Category] => variant
[SwatchImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/51Vgn6NZyJL._SL30_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 30
)
[Width] => Array
(
[Units] => pixels
[_content] => 21
)
)
[SmallImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/51Vgn6NZyJL._SL75_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 75
)
[Width] => Array
(
[Units] => pixels
[_content] => 53
)
)
[ThumbnailImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/51Vgn6NZyJL._SL75_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 75
)
[Width] => Array
(
[Units] => pixels
[_content] => 53
)
)
[TinyImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/51Vgn6NZyJL._SL110_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 110
)
[Width] => Array
(
[Units] => pixels
[_content] => 78
)
)
[MediumImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/51Vgn6NZyJL._SL160_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 160
)
[Width] => Array
(
[Units] => pixels
[_content] => 113
)
)
[LargeImage] => Array
(
[URL] => http://ecx.images-amazon.com/images/I/51Vgn6NZyJL._SL500_.jpg
[Height] => Array
(
[Units] => pixels
[_content] => 500
)
[Width] => Array
(
[Units] => pixels
[_content] => 353
)
)
)
)
)
[ItemAttributes] => Array
(
[Author] => Array
(
[0] => 桑原 晃弥
)
[Binding] => 文庫
[Creator] => Array
(
[0] => Array
(
[Role] => 著
[_content] => 桑原 晃弥
)
)
[EAN] => 9784569675206
[EANList] => Array
(
[EANListElement] => 9784569675206
)
[IsAdultProduct] => 0
[ISBN] => 4569675204
[Label] => PHP研究所
[ListPrice] => Array
(
[Amount] => 580
[CurrencyCode] => JPY
[FormattedPrice] => ¥ 580
)
[Manufacturer] => PHP研究所
[NumberOfPages] => 221
[PackageDimensions] => Array
(
[Height] => Array
(
[Units] => hundredths-inches
[_content] => 55
)
[Length] => Array
(
[Units] => hundredths-inches
[_content] => 583
)
[Weight] => Array
(
[Units] => hundredths-pounds
[_content] => 26
)
[Width] => Array
(
[Units] => hundredths-inches
[_content] => 417
)
)
[PackageQuantity] => 1
[ProductGroup] => Book
[ProductTypeName] => ABIS_BOOK
[PublicationDate] => 2010-08-02
[Publisher] => PHP研究所
[SKU] => 508823
[Studio] => PHP研究所
[Title] => スティーブ・ジョブズ名語録 (PHP文庫)
)
[OfferSummary] => Array
(
[LowestNewPrice] => Array
(
[Amount] => 580
[CurrencyCode] => JPY
[FormattedPrice] => ¥ 580
)
[LowestUsedPrice] => Array
(
[Amount] => 231
[CurrencyCode] => JPY
[FormattedPrice] => ¥ 231
)
[LowestCollectiblePrice] => Array
(
[Amount] => 650
[CurrencyCode] => JPY
[FormattedPrice] => ¥ 650
)
[TotalNew] => 2
[TotalUsed] => 28
[TotalCollectible] => 2
[TotalRefurbished] => 0
)
)
[1] => Array
(
[ASIN] => 4899772750
~以下略...~
)
[2] => Array
(
[ASIN] => 4048684116
~以下略...~
)
)
)
ドツボにはまった件
ItemLookupに限らず、Services_Amazonのレスポンスのほとんど(ひょっとして全て?)について。
レスポンスの[Item]の要素が、1つの場合と複数の場合とで連想配列の構造が若干変わる!!
例1)[Item]の要素が複数の場合
[Item] => Array
(
[0] => Array ( ~ひとつめの要素~ )
[1] => Array ( ~ふたつめの要素~ )
[2] => Array ( ~みっつめの要素~ )
)
例2)[Item]の要素がひとつの場合
[Item] => Array
(
~ひとつめの要素~
)
って感じ。
最終更新:2011年10月28日 17:12