過去の投稿記事 new!
・【画像】漫画でわかる外国人参政権
・東京電力のHPで停電状態が確認できたり(サービス再開!)
・戦国時代 ~ 江戸時代の徳川家康が熱かった
・vaio のバッテリは寿命が短いような気がする
・話題の Western Digital 製 WD20EARS を購入した
・C01LC をビックカメラで買ってきた
・2025年には空中都市が現実化?!
・【動画】わかりやすい「宇宙ひも理論」
・今世紀には「富士山噴火」「東海連動地震」「首都圏直下型地震」か?
・滅びた町、南浜町が Googleストリートビューで見れる

【 amazon 送料無料キャンペーン 】

バックリンクはご自由にどうぞ!     http://mfsocket.blogspot.com/feeds/posts/default?alt=rss リンク集 / ログイン

2010/05/12
amazon api を学んだ

 
amazon の API をどうしても使う必要があるので、調査してみた。
 
自宅サーバにて amazon API を叩けば「任意文字列検索 → 結果を出す」という
簡易的なWEBツールが出来るまで、時間にして丸々半日使った。
 
 
 
なんか…
 
色々めんどくさかった。
 
まずアカウント発行の段階に関してはAmazon web サービス入門というページが
非常に参考になりました。
 
 
参考サイトが無いと、アカウント発行の段階で何日費やすか想像が付きません。
 
そして一番ハマったのがシグネチャの発行
 
PHP5 で単純パターンで良いなら、以下のようにすれば出来るのですが、
 
// URL からパラメーターを抽出、生成した後のデータ
$data = 'GET
ecs.amazonaws.jp
/onca/xml
AWSAccessKeyId=00000000000000000000&Operation=ItemSearch&ResponseGroup=Request%2CImages&Service=AWSECommerceService&Timestamp=2010-05-12T12%3A00%3A00Z&Version=2009-07-01';
 
// 個人の秘密キー
$secret_key = 'あなたのシークレットキー';
 
// シグネチャを生成
$hash = hash_hmac('sha256', $data, $secret_key, true);
 
// シグネチャを base64 でエンコード後、url エンコード
$signature = rawurlencode( base64_encode($hash) );
 
// シグネチャを最後に連結すればOK
私は文字コード SJIS の Windows エディタでやっていたので、$data 変数の改行コードが
 \r\n となってしまい、シグネチャの値がおかしくなっていました。
 
仕様的に、改行コードは \n でなければいけないとか。
 
これは、微妙に気づきませんでした。
 
FTP のテキスト転送なら問題なかったと思いますが、自宅サーバーなので samba でそのまま
編集していただけに、より気づけなかった( ´д`)
 
けっこう疲れたなぁ。
 

0 コメント:

  • コメントには <b>, <strong>, <em>, <i>, <a> など一部の HTML タグを使用できます。