Amazon アソシエイト Web サービス1)
書籍情報を取得する場合などによく利用されていますが、2009年8月15日以降は電子署名の認証が必要になりました。
perlなどによるsampleはよく落ちていますが、c#はあまり見つからないここに載せておきます。
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
古いsampleでは省略されている場合が多いですが、AssociateTagは必須です。
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
TimestampとAWSAccessKeyIdも追加します
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
ソートするばあい、AWSAccessKeyIdは例外で最初に置きます
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
生成時に、KeyとValueはRfc3986エスケープを行います
AmazonにあるSampleだと「+」をそのままにしていますが、これもエスケープします
署名用文字列を認証用Key2)でSHA256_HMACを生成。
それをBASE64でエンコードしてRfc3986エスケープを行います。
D/u/VXzAusQ4AlIxSeqQlVtJ0kOwvyZiv7IIL4e6kVw= ↓ D%2Fu%2FVXzAusQ4AlIxSeqQlVtJ0kOwvyZiv7IIL4e6kVw%3D
こんなのが生成されるはず
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
全部つなぎ合わせて完成です。
こんな感じで取得できます。3)
<ItemAttributes> <Author>ボブ バーガー</Author> <Binding>文庫</Binding> <Creator Role="原著">Bob Berger</Creator> <Creator Role="翻訳">笹野 洋子</Creator> <EAN>9784062638029</EAN>< <ISBN>4062638029</ISBN> <Manufacturer>講談社</Manufacturer> <PublicationDate>1998-06</PublicationDate> <Publisher>講談社</Publisher> <Title>リスクを追いかけろ (講談社文庫)</Title> </ItemAttributes>
昨日、いきなりエラーをはき出した。
リモートサーバーエラー(400)不適切な要求です
いろいろ調べたあげく………
時計が狂ってた。orz