2019-11-29(金) [長年日記]
■ tDiary 5.1.0リリース
通常より2ヶ月遅れてしまったが、ただの「肉の日」じゃなくて「いい肉の日」にリリースできたので良いのではないでしょうか(ポジティブ):
リリースにあるとおり、今回のshow stopperはAmazonプラグインの大規模アップデートで、それにおれの仕事がなんかめっちゃ多忙だったのが重なって、ちっともコードが書けなかった。
RESTfulだったPA-API v4に対し、こんどのv5はJSON RPC(?)でまったく互換性がない上に、署名まわりもAWSの他のAPIに準拠するというシロモノで、舐めてかかってたらまったく進まなくなってしまった。
まずはAWSの署名v4が難解で、なんでAPIの認証でここまでパラノイアになる必要があるんだかさっぱり理解できない。それはさておき、いまだにCGIでも動くtDiaryでは安易にSDKのgemを同梱するわけにもいかず、自力で実装する羽目に。書いてて思ったけど、AWS署名を自力実装するヤツはアホだろ……*1。
コードはクソ汚いけどとりあえず署名できるようになったら、こんどはPA-API v5の実装で、これはまぁスッと動いたものの*2、テストをしているうちに呼び出し回数の上限が来てしまった(笑)。最近日記そのものを書けてないので、アフィリエイトの売上がないのだよ、とほほ。おかげで最後の方は手元にキャッシュされたJSONファイルでテストをする始末。なので、現状のコードは動くことは動くものの、例外処理がだいぶ甘い。
しかも! これまでISBN-13をサポートしていたのに、v5からはASINのみのサポートに後退してんのよ(ISBN-10はASINの仲間扱い)。おかげでISBN13→10への変換まで書かなきゃいけなくなった。まさか12年前に自分で書いたコードを参照する羽目になるとは*3。
そんなわけでなんとか動くものをリリースできたものの、正直Amazonはもう使いたくない。そもそも売上の少ない人は事実上使えないので。アフィリエイトなんていらんから、商品へのリンクを貼るためだけに使える何か別のサービスを使えるといいんだけど……。