前回に続き、書籍”公開API活用ガイド”の第5章:アフィリエイト・リンクを読んで実践。
今回は”amazon Product Advertising API”を利用し、キーワード”工学社”とカテゴリ”Books”で商品検索するPHPプログラムを解説していた。
メモ
- アクセスキーIDとシークレットアクセスキーが必要
- リクエストURLの形式:http://webservices.amazon.co.jp/onca/xml
今回出会ったPHP関数
| 関数 | 内容 |
|---|---|
| ksort | 配列をキーでソートする |
| str_replace | 検索文字列に一致したすべての文字列を置換する |
| rawurlencode | RFC 3986 に基づき URL エンコードを行う |
| implode | 配列要素を文字列により連結する |
| base64_encode | MIME base64 方式でデータをエンコードする |
| hash_hmac | HMAC 方式を使用してハッシュ値を生成する |
フォームに入力した検索ワードでamazon商品の一覧を表示するページ:amazon_product_advertising_api.php
参考サイト
-
Amazon アソシエイト・プログラム(アフィリエイト) 公式ブログ: [重要]Amazon Product Advertising APIの仕様変更について
-
Amazon Web サービス入門(Product Advertising API)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>amazon Product Advertising API practice</title>
</head>
<body>
<h1>amazon Product Advertising API sample</h1>
<form action="" method="get">
<input type="text" name="keyword" size="35" maxlength="255" value="" />
<input type="submit" value="search" />
</form>
<?php
function search_paa($SearchIndex, $keyword) {
$AccesskeyID = 'AWS Access Key ID';
$SecretAccessKey = 'AWS Secret Access Key';
$method = "GET";
$host = 'webservices.amazon.co.jp';
$uri = "/onca/xml";
$params['AWSAccessKeyId'] = $AccesskeyID;
$params['Service'] = 'AWSECommerceService';
$params['Version'] = '2011-08-01';
$params['Operation'] = 'ItemSearch';
$params['ResponseGroup'] = 'Small,Images';
$params['SearchIndex'] = $SearchIndex;
$params['Keywords'] = $keyword;
$params['AssociateTag'] = 'amazon associate id';
$params['Timestamp'] = gmdate('Y-m-dTH:i:sZ');
ksort($params);
$query = array();
foreach ($params as $param=>$value) {
$param = str_replace("%7E", "~", rawurlencode($param));
$value = str_replace("%7E", "~", rawurlencode($value));
$query[] = $param . "=" . $value;
}
$query = implode("&", $query);
$Signature = $method . "n" . $host . "n" . $uri . "n" . $query;
$Signature = base64_encode(hash_hmac("sha256", $Signature, $SecretAccessKey, True));
$Signature = str_replace("%7E", "~", rawurlencode($Signature));
$url = "http://" . $host . $uri . "?" . $query . "&Signature=" . $Signature;
$ret = "";
$xml = simplexml_load_file($url);
if ($xml === false) {
return false;
}
else {
foreach ($xml->Items->Item as $Item) {
$ret .= '<a href="' . $Item->DetailPageURL . '"><img src="' . $Item->MediumImage->URL . ""></a><br />n";
$ret .= '<a href="' . $Item->DetailPageURL . '">' . $Item->ItemAttributes->Title . "</a><br />n";
}
}
return $ret;
}
if (!empty($_REQUEST["keyword"])) {
$keyword = htmlspecialchars($_REQUEST["keyword"], ENT_QUOTES, 'UTF-8');
echo search_paa("Books", $keyword);
}
?>
<p>powered by amazon Product Advertising API</a></p>
</body>
</html>
公開API活用ガイド (I・O BOOKS)
posted with amazlet at 12.01.24
ZAPA
工学社
売り上げランキング: 149253
工学社
売り上げランキング: 149253
関連エントリー
