前回に続き、書籍”公開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
関連エントリー