2009年09月03日
tipjarok_banner88x31_green.gif

アマゾンAPIが2009年8月15日から認証必須になってたみたい。


amazon_web_services.gif

AmazonのWEBサービス(REST)を使って作っているサイトの挙動がおかしいなあ~と思って調べてみると、なんと「Product Advertising API の署名認証利用開始のお願い」という題名でAmazonからメールが来ていたのを見逃していたみたい。

そういえば、リクルート系のAPIを利用したサイトも認証キーを導入しているのを知らなくて、一時不具合がでたのを思い出した。

スマッチAPIが利用できなくなっていた!

結論としては、認証のための電子署名をリクエストに含める必要があるみたい。

Product Advertising API 開発者の皆様

いつも Product Advertising API をご利用いただき、誠にありがとうございます。

先日より数回にわたり、Product Advertising API への全てのリクエストに、認証のための電子署名を 2009年8月15日までに含めていただく必要があることにつき、ご案内させていただいております。多くの皆様に既にご対応を完了、または開始いただき、ご協力に深く感謝しております。

弊社による調査では、お客様の AWSAccessKeyID から送信されているリクエストの全部または一部に、未だ電子署名が含まれていないことが判明しています(2009年8月6日時点)。電子署名は今週末の2009年8月15日には必須となり、これ以降に認証を含まないリクエストが送信された場合、リクエストは一切処理されなくなりますので、至急ご対応を進めていただきますよう、重ねてお願い申し上げます。

お客様には大変お手数をおかけすることとなり恐縮ですが、ご利用中のリクエストが2009年8月16日以降も引き続き正しく動作するために、ご対応のほどよろしくお願いいたします。

既にご対応を完了くださっている場合は、本メールが行き違いとなりますことをご容赦ください。ご協力に深く感謝いたします。

ご参考まで、Product Advertising API へのリクエストに署名認証を含めるための方法に関する参考資料へのリンクをまとめましたので、ぜひご利用ください。

・開発者向けガイド(英語) [ http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/ ]では、署名認証に関する詳細な情報がご確認いただけます。

・Developer Guide - リクエストの署名認証について(日本語参考訳) [ https://affiliate.amazon.co.jp/gp/associates/help/t126 ]では、上記ガイドの日本語版がご覧いただけます。なお、こちらはあくまでも参考訳としてのご提供となりますので、最終的なご確認は上記Developer Guide(原文)をご利用ください。

・Sample Code(英語) [ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=14 ]では、署名認証のJ Java, C# ならびに Perl のサンプルコードがご覧いただけます。

・署名認証の導入にあたってのお問い合わせ・情報交換には、開発者フォーラム(英語) [ http://developer.amazonwebservices.com/connect/forum.jspa?forumID=9 ](本社技術スタッフが常駐しておりますので、より迅速な対応が得られます)開発者フォーラム(日本語) [ http://developer.amazonwebservices.com/connect/forum.jspa?forumID=19 ](日本語での投稿が可能ですが、本社技術スタッフによる対応については少々お時間を頂戴する場合がございます)をご利用ください。

・その他ご不明な点がありましたら、Product Advertising API [ https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html ] およびよくあるご質問 [ https://affiliate.amazon.co.jp/gp/advertising/api/detail/faq.html ]をご覧ください。

Amazon の商品を広告いただきありがとうございます。広告いただいた商品の販売収益を、皆様に紹介料として還元できることを楽しみにしています。

今後ともよろしくお願いいたします。

Product Advertising API チーム

調べてみると、Signature (署名)とTimestamp (タイムスタンプ)という2種類のパラメータがRESTの認証では必要とのこと。このSignature (署名)パラメータを作成するために、米国アマゾンのアカウントを作成して、AWS秘密キーをもらってこい!ということらしい。

Amazon アソシエイト(アフィリエイト) - ヘルプ - 認証パラメータ

Product Advertising APIでは、RESTリクエストの認証において、以下のパラメータが使用されます。

* Signature (署名) - このパラメータはオプションとなり、初期値は存在しません。Signatureパラメータはリクエストのタイプ、ドメイン、URLを使用して作成され、パラメータは、=& のフォーマットで記述されており、リクエスト内の各パラメータの文字列の順に並べられています(Signatureパラメータ本体以外)。正しい仕様になっていれば、AWS秘密キーを元にbase64エンコードのHMAC-SHA256署名が作成されます。このプロセスに関する詳細は、RESTリクエストのサンプルをご参照ください。

* Timestamp (タイムスタンプ) - このパラメータは、Signatureパラメータをリクエストに含める場合は必須となり、含めていない場合はオプションとなります。こちらについても初期値は存在しません。リクエストに含めるタイムスタンプは、dateTimeオブジェクトである必要があり、すなわち、date オブジェクトおよびtime オブジェクトの全ての情報がを含めたもの(年月日・時分秒)となります(こちらに関するより詳細な情報については、http://www.w3.org/TR/NOTE-datetimeをご参照ください)。この値はISO8601で定義された国際標準時(GMT)での表示形式となります: YYYY-MM-DDThh:mm:ssZ (T および Z はリテラル値)

検索すると、すでにPHPでサンプルコードを書いてくれているサイトもあって大変楽だ!

AmazonのAPIでHMACSHA256が必要になる件
AmazonのProduct Advertising APIを利用するにはHMAC-SHA256が必要らしい
アマゾンAPIを使うのに2009年8月15日から認証が必要になるらしい
PHP4 で HMAC-SHA256 などの hash_hmac() 関数を使えるようにする

今ソースをおいてあるサーバのPHPのバージョンがPHP 5.1.2 以上なので、hash_hmac() 関数が使える。よってこの手でいくことにする。



« グリーンの傾斜と芝目の読み方 | トップページ | 楽天アフィリに今何が起こっているのか!? »






この記事を読んだ人はこんな記事も読んでいます



トラックバック

このエントリーのトラックバックURL:
http://shoulder.s51.coreserver.jp/mt/mt-tb.cgi/10060

 

shoulder.jp | Copyright © Shoulder. All rights reserved. |  

 [PR] | 噛み合わせ異常の問題 | 卒乳と離乳食 | 減量のためのボクササイズメニュー | 手ぶらでバーベキュー | 買い物ウォーキング | 低体温が影響する病気 | インプラント | 特定調停とは | 視覚障害者移動介護従業者 | 適応障害とカウンセラー資格 | 人間ドックのホテル宿泊 | 整体師 学校 | アロマテラピスト | 人間ドックの基準値 | 自転車通勤の靴 | 一眼レフの レンタル | 外反母趾グッズ | 血糖値とペットボトル症候群 | プライバシーポリシー | 海外ウェディングをお得にする方法 | 生活習慣病におすすめの運 | 脱毛クリームで処理 | 派遣切り | 課題分析 - アセスメント | オール電化マンション | 脚痩せ治療 | WEBライターで稼ぐ | 更年期障害を改善する食事 | とびひと保育園の登園 | プライバシーポリシー |