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

19年5月24日(Fri) 17時36分
TOP » UsersWiki » nao-pon » blog » 2009-05-09

RSS of nao-pon/blog
Sat 9 May 2009
 

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

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

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

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

Amazon.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() も使えない環境への対応は、代用関数が見つからないので、私の力量では無理です。 :-(



Comments list

Posts tree


ゲスト   Posted on 2009-5-13 14:19

pukiwiimodのawsプラグインの「Product Advertising API」対応ってしていただけるのでしょうか?

nao-pon  Posted on 2009-5-16 0:06
引用:

pukiwikimodのawsプラグインの「Product Advertising API」対応ってしていただけるのでしょうか?

最近のバージョンでしたら、HypCommonFunc の HypSimpleAmazon クラスを使用しているので、HypCommonFunc の次回のバージョンアップで対応できる予定です。 :-)

ゲスト   Posted on 2009-5-19 10:15

ご回答ありがとうございました。
今後ともよろしくお願いいたします。



Post a new comment

Subject
guestname
Body

Go to richer form

Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 12166, today: 4, yesterday: 5
Princeps date: 2009-05-09 (Sat) 00:17:10
Last-modified: 2009-09-19 (Sat) 07:56:11 (JST) (3534d) by nao-pon
このページのTopへ
ログイン
ユーザ名:

パスワード:

オートログイン

Basic 認証

Register now! | Lost Password?



メインメニュー
UsersWiki メニュー
付箋メニュー
Fusen(Tag) menu 
Tag Editor
Color: BG:
Name:  Connect line ID:
 
ブックマーク
Please log in to use it.
[Login]
サイト内 Wiki
☆ 検索 ☆



高度な検索(サイト内)
FireFox検索プラグイン
オンライン状況
合計 51 人がオンライン中 :-)
(UsersWiki : 3 人)

登録ユーザ: 0 & ゲスト: 51

もっと...
サイト情報
管理人

nao-pon
 

登録ユーザ数: 4604


Web Services by Yahoo! JAPAN
楽天ウェブサービスセンター
Amazon.co.jpアソシエイト
現在ページのQRコード
現在ページのQRコード
[携帯対応]
参照元情報