MENU

PHPでAmazonWebサービスにアクセスしてみた(Product Advertising API版)。

ま、こちらのドキュメントに沿って、そのままPHP化してみただけなんですけど。意外と面倒ね。
調べてないけど、誰か簡易なライブラリとか作ってないのかしらね。

 'AWSECommerceService',
	'AWSAccessKeyId' => AWS_ACCESS_KEY_ID,
	'Operation' => 'ItemSearch',
	'Version' => '2010-03-31',
	'SearchIndex' => 'All',
	'Keywords' => $aws_keyword,
	'Timestamp' => date('Y-m-d'). 'T'. date('H:i:s'). 'Z',
	'ResponseGroup'=> 'ItemAttributes,Images',
	'ItemPage'=> $aws_item_page,
);
 
//クエリをURLエンコードして、変数名でソート
$request_param = array_map ('rawurlencode', $request_param);
ksort($request_param);
 
//1行のクエリに加工
$request_queries = array();
foreach ($request_param as $k => $v) $request_queries[] = "{$k}={$v}";
$request_query = implode('&', $request_queries);
 
//Signatureの作成
$aws_signature_base  = "GET\n";
$aws_signature_base .= AWS_REQUEST_DOMAIN. "\n";
$aws_signature_base .= AWS_REQUEST_PATH. "\n";
$aws_signature_base .= $request_query;
$aws_signature = urlencode(base64_encode(hash_hmac('sha256', $aws_signature_base, AWS_SECRET_ACCESS_KEY, TRUE)));
 
//リクエストURLの作成
$aws_signed_url = 'http://'. AWS_REQUEST_DOMAIN. AWS_REQUEST_PATH. "?{$request_query}&Signature={$aws_signature}";