連載第三弾となります。
1.PHP4 「Product Advertising API」をPHP4から使う。その一。HMACへの道。
2.PHP4 「Product Advertising API」をPHP4から使う。その2。HMAC-SHA256自作編。
順調に開発は進みましたので、いよいよ実装します。
まず、アマゾンの実装サンプルを見てください。
http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html
これと同じ結果になるようにプログラムを書きます。
前回作ったHMAC-SHA256クラスを使います。
| <?php // Record time before hashing // 1.と3.リクエストの準備。形式はアマゾンのサンプルのまま。 // Record time after hashing // Display difference // RFC3986に基づいてURLエンコードする // 時間計測関数 return (float)$usec + (float)$sec; |
このPHPコードを実行すると、
| [StringToSign] : string(250) "GET webservices.amazon.com /onca/xml AWSAccessKeyId=00000000000000000000&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-06" [signature] : string(44) "Nace+U3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg=" [URL] : string(311) "http://webservices.amazon.com/onca/xml?AWSAccessKeyId=00000000000000000000&ItemId=0679722769&Operation=ItemLookup&ResponseGroup=ItemAttributes%2COffers%2CImages%2CReviews&Service=AWSECommerceService&Timestamp=2009-01-01T12%3A00%3A00Z&Version=2009-01-06&Signature=Nace%2BU3Az4OhN7tISqgs1vdLBHBEijWcBeCqL5xN9xg%3D" Runtime: 0.18074798584 seconds. |
となります。signatureがアマゾンのサンプルと一致しているのが確認できるかと思います。
一応これで完成です。
あとは本物のアマゾンAPIに組み込んで使ってください。
ライセンスは特に主張しませんが、同じまま名前だけ変えて配布するのは止めてくださいね。
ではでは。
つづく?(Services/Amazonへの組み込み編は需要あるかな?)
以上です。お役に立ちましたら拍手をお願いします
2009/06/18 | 未分類 | COMMENT(3) | TRACKBACK(0) TOP
コメント
素晴らしいー。
>Services/Amazonへの組み込み編は需要あるかな?
レンサバなどでphp4で使ってるがpeclへの自由度が無い。
でも、Services/Amazonは使っている。
という人間は沢山居ると思いますので、組み込まれた形があるとすごく便利かと。
私もその一人です ^^;
No:10 2009/06/18 17:00 | ken1 #- URL [ 編集 ]
了解です。
分かりました。
それでは掲載いたします。
No:11 2009/06/18 18:44 | ソフト屋 巣 #- URL [ 編集 ]
とても助かりました
Amazonの仕様が変わって困っておりました。
とても参考になりました。
ありがとうございます。
No:21 2009/08/26 22:10 | YOU #- URL [ 編集 ]
コメントの投稿
トラックバック
この記事にトラックバックする(FC2ブログユーザー)