====== AWS ======
Amazon アソシエイト Web サービス((Amazon アソシエイトの Web サービス (AWS) の名称は現在 Amazon Product Advertising API です。))
書籍情報を取得する場合などによく利用されていますが、2009年8月15日以降は電子署名の認証が必要になりました。\\
perlなどによるsampleはよく落ちていますが、c#はあまり見つからないここに載せておきます。
===== 生URLの生成 =====
http://ecs.amazonaws.co.jp/onca/xml?Service=AWSECommerceService
&Version=2011-08-01
&Operation=ItemLookup
&SearchIndex=Books
&IdType=ISBN
&ItemId=1234567890123
&AssociateTag=member-22
&ResponseGroup=Medium
[color=red]//古いsampleでは省略されている場合が多いですが、AssociateTagは必須です。//[/color]
===== パラメータ部分を切り出す =====
Service=AWSECommerceService
Version=2011-08-01
Operation=ItemLookup
SearchIndex=Books
IdType=ISBN
ItemId=1234567890123
AssociateTag=member-22
ResponseGroup=Medium
Timestamp=2011-09-03T06:37:08.000Z
AWSAccessKeyId=AABBCCDDEEFFGGHH9900
[color=red]//TimestampとAWSAccessKeyIdも追加します//[/color]
===== パラメータ部分をソート =====
AWSAccessKeyId=AABBCCDDEEFFGGHH9900
AssociateTag=member-22
IdType=ISBN
ItemId=1234567890123
Operation=ItemLookup
ResponseGroup=Medium
SearchIndex=Books
Service=AWSECommerceService
Timestamp=2011-09-03T06:37:08.000Z
Version=2011-08-01
[color=red]//ソートするばあい、AWSAccessKeyIdは例外で最初に置きます//[/color]
===== 署名用文字列を生成 =====
GET
ecs.amazon.co.jp
/onca/xml
AWSAccessKeyId=AABBCCDDEEFFGGHH9900&AssociateTag=member-22&IdType=ISBN&ItemId=1234567890123&Operation=ItemLookup&ResponseGroup=Medium&SearchIndex=Books&Service=AWSECommerceService&Timestamp=2011-09-03T06%3A37%3A08.000Z&Version=2011-08-01
[color=red]//生成時に、KeyとValueはRfc3986エスケープを行います//[/color]\\
[color=red]//AmazonにあるSampleだと「+」をそのままにしていますが、これもエスケープします//[/color]
===== 署名を生成 =====
署名用文字列を認証用Key((AmazonでAWSAccessKeyIdと一緒に交付されているはずです))でSHA256_HMACを生成。\\
それをBASE64でエンコードしてRfc3986エスケープを行います。
D/u/VXzAusQ4AlIxSeqQlVtJ0kOwvyZiv7IIL4e6kVw=
↓
D%2Fu%2FVXzAusQ4AlIxSeqQlVtJ0kOwvyZiv7IIL4e6kVw%3D
こんなのが生成されるはず
===== 署名付きURLを生成 =====
http://ecs.amazonaws.co.jp/onca/xml?AWSAccessKeyId=AABBCCDDEEFFGGHH9900&AssociateTag=member-22&IdType=ISBN&ItemId=1234567890123&Operation=ItemLookup&ResponseGroup=Medium&SearchIndex=Books&Service=AWSECommerceService&Timestamp=2011-09-03T06%3A37%3A08.000Z&Version=2011-08-01&Signature=D%2Fu%2FVXzAusQ4AlIxSeqQlVtJ0kOwvyZiv7IIL4e6kVw%3D
全部つなぎ合わせて完成です。
===== データの取得 =====
こんな感じで取得できます。((実際にはもっと大量のデータですが、大幅に略しています))
ボブ バーガー
文庫
Bob Berger
笹野 洋子
9784062638029<
4062638029
講談社
1998-06
講談社
リスクを追いかけろ (講談社文庫)
===== エラー =====
昨日、いきなりエラーをはき出した。
リモートサーバーエラー(400)不適切な要求です
いろいろ調べたあげく………
時計が狂ってた。orz