hypweb.net
XOOPSマニア  最新情報のRSS(サイト全体)
[ 自宅サーバーWebRing |ID=54 前後5表示乱移動サイト一覧 ]

TOP » UsersWiki » nao-pon » blog » 2009-05-09

RSS of nao-pon/blog
2009 5月 9 (土)
 

Product Advertising API って一体・・・ anchor.png

Amazon の Associates Web Service が Product Advertising API に名称変更になったとのこと。

名称変更だけならいいのだけど、今後のリクエストには認証が必要になり、プログラム変更を 8月15日 までに済ませなければ、いけないらしい。

これが、どのようにするのかよく分からない。

Amazon.com のアカウントは持っていたので、とりあえず秘密キーは作成した。

この先は、

  • (docs.amazonwebservices.com)

を見れば分かるらしいのだが、なんせ英語が分かんない。 :cry:

今日は、ここまで。


と思ったけど気になったので、ちょっと頑張ってみました。

とりあえず、PHP の hash_hmac() が使える環境 (PHP 5 >= 5.1.2, PECL hash >= 1.1) であれば、動作するようになりました。

肝は base64 でエンコードするところでしょうか。

$hash = base64_encode(hash_hmac('sha256' , $data, $key, TRUE));

あとは、hash_hmac() が使えない環境向けに代用関数を探すだけ。(これが大変かも :thinking: )
誰か知っていたら教えてください。 :shy:

Page Top

PHP での REST のまとめ anchor.png

検索で、訪れてくれる人が多いようなので、簡単にまとめておきます。

  1. 何はともあれ、amazon.com のアカウントを取って、AWS から秘密キーを作成する。
  2. GETクエリの構築
    • 配列 $params にクエリキーをキーとして値が入っているとする
    • クエリに Timestamp を加える
      $params['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z');
    • クエリのキーを元に昇順ソートし、値を URL エンコードしてGETクエリを作成
      ksort($params);
      $querys = array();
      foreach($params as $key=>$val) {
          $querys[] = $key . '=' . rawurlencode($val);
      }
      $query = join ('&', $querys);
    • そのクエリと秘密キー($key)を元に Signature を作成
      1
      2
      3
      4
      5
      6
      7
      8
      
      $data = 'GET' . "\n" . 'webservices.amazon.co.jp' . "\n" . '/onca/xml' . "\n" . $query;
      if (function_exists('hash_hmac') && function_exists('hash_algos') && (in_array('sha256', hash_algos()))) {
          $signature = base64_encode(hash_hmac('sha256' , $data, $key, TRUE));
      } else if (function_exists('mhash') && defined('MHASH_SHA256')) {
          $signature = base64_encode(mhash(MHASH_SHA256 , $data, $key));
      } else {
          $signature = '';
      }
    • Signature が作成できれば、クエリに追加
      if ($signature) $query .= '&' . $signature;
  3. あとは、できあがった GETクエリで今まで通りにリクエスト

ざっと、こんな感じです。 :ok:

hash_hmac() も mhash() も使えない環境への対応は、代用関数が見つからないので、私の力量では無理です。 :-(



トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 510, today: 1, yesterday: 0
初版日時: 2009-05-09 (土) 00:17:10
最終更新: 2009-09-19 (土) 07:56:11 (JST) (5335d) by nao-pon
このページのTopへ
メインメニュー
ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録
最近の更新
オンライン状況
721 人のユーザが現在オンラインです。 (6 人のユーザが UsersWiki を参照しています。)

登録ユーザ: 0
ゲスト: 721

もっと...
サイト情報