トップ «前の日記(2009年05月12日(Tuesday)) 最新 次の日記(2009年05月19日(Tuesday))» 編集

たいへん日記

私へ●たいはかせの日記、と言うよりは雑記です.
日々の出来事を書いていくのではなく、普段から思っていることをとりとめもなく書いていくつもりです.
とかなんとか言いながらも日々の行動の記録が大半を占めているあたりがニントモカントモ...

2006|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|12|

2009年05月18日(Monday) 先達に助けられる日々

_ [FreeBSD] Re:security/pecl-hashでどうですか?

nigoroさま、ありがとうございます.
「security/pecl-hash」を試してみます.

とりあえず、インストールだけやってみました.

# cd /usr/ports/security/pecl-hash
# make
# make install

この後、簡単なスクリプトを作って動作するか試してみます.
さー、どうなることやら.

_ [FreeBSD] security/pecl-hash

security/pecl-hash をインストール後、rehash して apachectl restart してみました.
以下のような php スクリプトを作成.

<?php
echo hash_hmac('sha256','ハッシュするメッセージ','ひみつ鍵');
?>

これをブラウザで読み込むと、
hmacでsha256なハッシュ
おー、ハッシュの作成が出来ました.

nigoroさま、ありがとうございました.
おかげで先に進めそうです.
正直、これが出来ないなら php5 の環境を一から作らねばいけないと思っていた所ですので、大変助かりました.
ありがとうございます.

_ [FreeBSD][図書館] Amazon の Product Advertising API へのリクエスト

さてさて、ハッシュを作る環境が整ったので、Product Advertising API へ送るリクエストを試作してみます.
リクエストに必要な要素は、

AWSAccessKeyId=ないしょだよ
IdType=ASIN
ItemId=B00005EQK4
Operation=ItemLookup
ResponseGroup=EditorialReview%2CImages%2CTracks
Service=AWSECommerceService
Timestamp=2009-05-18T14%3A10%3A00Z
Version=2009-01-06

この頭に「GET webservices.amazon.co.jp /onca/xml」の文字列を付与する.

GET webservices.amazon.co.jp /onca/xml AWSAccessKeyId=[おしえてあげない]&IdType=ASIN&ItemId=B00005EQK4&Operation=ItemLookup&ResponseGroup=EditorialReview%2CImages%2CTracks&Service=AWSECommerceService&Timestamp=2009-05-18T14%3A10%3A00Z&Version=2009-01-06

(横に長くてごめんなさい)
この文字列のハッシュ値を得ます.
ハッシュ値を得るための鍵は、http://aws.amazon.com/のページから「Your Account」→「Access Identifiers」とたどり「Your Secret Access Key」を表示させると得られます.
先ほどの文字列を「$さっきの文字列」Amazonのひみつのアクセスキーを「$シークレットアクセスキー」として、ハッシュ値を計算させてみます.

<?php
$hash = hash_hmac('sha256', $さっきの文字列, $シークレットアクセスキー, 'true');
$hash2 = base64_encode($hash);
echo urlencode($hash2);
?>

このPHPスクリプトにブラウザからアクセスするとハッシュ値が得られます.
得られたハッシュ値はこんな感じ.

c0DLez1rLTUjmUJei%2Fg%2BMb0Ih3FscJCwX%2BTi0uuBQFQ%3D

ハッシュ値はちょっと置いといて、「先ほどの文字列」をちょっといじってやります.
「http://」を付与し、「GET」を捨てて、区切りの箇所を引っ付けて、おしりに「&Signature=」を付与してやります.

http://webservices.amazon.co.jp/onca/xml?AWSAccessKeyId=[ないしょだよ]&IdType=ASIN&ItemId=B00005EQK4&Operation=ItemLookup&ResponseGroup=EditorialReview%2CImages%2CTracks&Service=AWSECommerceService&Timestamp=2009-05-18T14%3A10%3A00Z&Version=2009-01-06&Signature=

この後ろに肝心のハッシュ値をひっつけてやる.

http://webservices.amazon.co.jp/onca/xml?AWSAccessKeyId=[ひみつだよ]&IdType=ASIN&ItemId=B00005EQK4&Operation=ItemLookup&ResponseGroup=EditorialReview%2CImages%2CTracks&Service=AWSECommerceService&Timestamp=2009-05-18T14%3A10%3A00Z&Version=2009-01-06&Signature=c0DLez1rLTUjmUJei%2Fg%2BMb0Ih3FscJCwX%2BTi0uuBQFQ%3D

これで出来上がりです.
ブラウザのURL欄にこれをコピー貼り付ければ必要なデータがXML形式で返ってきます.
Amazon Product Advertising API からの情報

_ さてさて、ここまででハマった事.
1. ResponseGroup を「%2C」で区切らねばいけなかった.
2. ハッシュ値を urlencode しなければいけなかった.
3. amazon.com ではなく amazon.co.jp にリクエストを送らねばいけなかったこと.((3)は、はかせの環境でのお話)

あとはこれを現行の環境にうまく組み込んでやらねばいけないのよ.
どうなる事やら...