BLOGTIMES
2009/06/03

Amazon Product Advertising APIの署名認証ルーチンを書いてみた

  amazon  php 
このエントリーをはてなブックマークに追加

Amazon APIの認証方法が変更になって、8月からはリクエストへの署名認証が必須になるらしいので、NP_Amazonが使えなくならないようにphp用の認証ルーチンを書いてみました。まぁ、同じものを開発しているひとはたくさんいるのでしょうけど。

function addAuthSig($url, $secret){ $urlArr = parse_url($url); parse_str($urlArr["query"], $paramArr); $paramArr['Timestamp'] = gmdate("Y-m-d\TH:i:s\Z"); ksort($paramArr); $paramStr = ""; foreach( $paramArr as $key => $value ){ $paramStr .= $key ."=" . rawurlencode($value) . "&"; } $strToSign = "GET\n${urlArr['host']}\n${urlArr['path']}\n" . rtrim($paramStr, '&'); $sig = rawurlencode( base64_encode( hash_hmac("sha256", $strToSign, $secret, true) ) ); return $urlArr['scheme'] . "://" . $urlArr['host'] . $urlArr['path'] . '?' . $paramStr . "Signature=" . $sig; }

書いてみると、思っていたよりもシンプルですね。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3067
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    通りすがり (2009/06/17 15:32) <%HatenaAuth()%>

    NP_Amazonなら、5月に対応版が出てますよ。
    http://nekhet.ddo.jp/item/1...

    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン