アマゾン Product Advertising API の仕様変更にともない、8月15日までに署名認証に対応しなければならない。いつかはやらないといけないので、昨日、プログラムの修正にチャレンジした。
参考にしたのは、下記のサイトである。PHP4で署名認証に対応する方法を開発し、公開してくれている。当方はPHP4なので、とてもありがたいことである。
まず、ライブラリを2つ自分のフォルダーに入れて、パスが通っているか確認。
で、自分が使っているプログラムのなかに、「ソフト屋 巣」さんの見本プログラムを挿入してみた。私は「monom」さんという人のつくったプログラム(これが素晴らしい)を使わせていただいている。しかし、挿入しても、なかなかうまく行かない。変数の名前の違いなどに注意していろいろ書き直してみたが、またしてもエラー。
そこで、見本となるリクエストのURLと、自分のサイトで生成されるリクエストのURLを詳細に見比べてみた。すると、パラメーターでServiceのところの記述の位置が違っていることを発見。なぜ、位置が違うのかというと、私が使っているプログラムでは、パラメーターのServiceはアマゾンのURLをセットになって記述され、?で接続されていた。
なので、この点を修正し、パラメーターとして扱った。で、テストしてみたら大成功。
なるほどね。アマゾンAPIはリクエストするURLをきちんと出るようにすることがすべてですね。このURLのなかにリクエストのすべてが入っており、それ以上でも、以下でもないのだ。
たったこれだけの作業だが、私はプログラムのことはよくわからないので、1日仕事だった。とりあえず、ローカルでは成功した。まだアップしていないが、そのうちアップしようと思う。ちゃんと動くかどうか、ちょっとこわいな。