スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



  

Amazonから任意の文字列に関連する書籍情報を取得する

アマゾンから任意の文字列を含む書籍情報を取得するアプリを作成してみたので、以下にコードを記載する。
なお、アマゾンのAPIを使用するためには、こちらからデベロッパーの登録をする必要がある。

・アマゾンAPI用のクラス
class amazonApi
{
 // Property
 var $params = array();
 var $host = "";
 var $algo = "";
 var $secret_key = "";

 /**
  * Constructor
  **/
 function amazonApi()
 {
  $this->param["Service"] = "AWSECommerceService";
  $this->param["AWSAccessKeyId"] = "AmazonAPIのアクセスキー";
  $this->param["Version"] = "2009-07-01";
  $this->param["Operation"] = "ItemSearch";
  $this->param["ResponseGroup"] = "Small";
  $this->param["SearchIndex"] = "Books";
  $this->param["Timestamp"] = str_replace("GMT", "T", gmdate("Y-m-dTH:i:s")) . "Z";
  $this->host = "ecs.amazonaws.jp";
  $this->algo = "sha256";
  $this->secret_key = "AmazonAPIのシークレットキー";
 }

 /**
  * setKeyword
  *
  * param string $var
  **/
 function setKeywords($var)
 {
  $this->param["Keywords"] = urlencode($var);
 }

 /**
  * search
  *
  * ret array $item_list
  **/
 function search()
 {
  $item_list = array();
  $arr_request = array();
  foreach ($this->param as $key => $value) {
   $arr_request[] = $key . "=" . $value;
  }

  $str_request = implode("&", $arr_request);
  $str_request = $this->sortRequest($str_request);
  $signature = $this->createSignature($str_request);
  $url_request = "http://" . $this->host . "/onca/xml?" . $str_request . "&Signature=" . $signature;
  $item_list = file_get_contents($url_request);
  return $item_list;
 }

 /**
  * sortRequest
  *
  * param string $str_request
  * ret string $sort_request
  **/
 function sortRequest($str_request)
 {
  $str_request = str_replace(",","%2C",$str_request);
  $str_request = str_replace(":","%3A",$str_request);
  $str_request = str_replace("%7E","~",$str_request);
  $split_request = array();
  $split_request = split("&", $str_request);
  sort($split_request);
  $sort_request = implode("&", $split_request);
  return $sort_request;
 }

 /**
  * createSignature
  *
  * param string $request
  * ret string $signature
  **/
 function createSignature($request)
 {
  $base_string = "";
  $base_string .= "GET\n";
  $base_string .= $this->host . "\n";
  $base_string .= "/onca/xml\n";
  $base_string .= $request;
  $signature = hash_hmac($this->algo, $base_string, $this->secret_key, true);
  $signature = urlencode(base64_encode($signature));
  return $signature;
 }


// クラスの呼び出し部分
$key_word = "検索キーワード";
$amazon_class = new amazonApi();
$amazon_class->setKeywords($key_word);
$response = $amazon_class->search();
$list = simplexml_load_string($response);

※HTMLは省略している。

上記のコードを使用したサンプルはこちら
関連記事
スポンサーサイト



  

テーマ : プログラミング
ジャンル : コンピュータ

コメント

非公開コメント

検索フォーム
プロフィール

サトリヒロシ

Author:サトリヒロシ
ビジネスを重視した企画を支援したいエンジニアが、何かを書こうとするブログです。

サトリ潜伏先
サトリ倉庫

WEB関連の技術で調査リクエストがあればご連絡ください。

カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
カテゴリ
最新記事
最新コメント
最新トラックバック
月別アーカイブ
RSSリンクの表示
リンク
QRコード
QRコード
FC2カウンター
スポンサードリンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。