2009-05-12(火) [長年日記]
■ AmazonのAPI認証導入はOSSに対する挑戦だよなぁ
「Amazon アソシエイト Web サービスの名称変更および署名認証についてのお知らせ」によって、たった3ヶ月であらゆるAPI呼び出しに認証をつけなくてはいけなくなったわけだが、ここまで広まったAPIにこんだけキツい縛りをかける、その裏の意図がさっぱりわからん。
この認証方式は、以前AlexaのWebサービスを使ってみたときとほぼ同じで、SHA1の代わりにSHA256を使う点と、ハッシュの元メッセージが複雑になった点が違う程度。コード上の対応は難しくない。tDiaryでもすでに、えろぺおさんによるモンキーパッチが出ている。
Alexaの場合は課金という目的があったけど、Amazonの場合は逆にユーザに金を払っているわけで*1、しかも実際に売り上げが上がったときにだけ支払ってるわけだから、あんまり認証かける意味はなさそうなんだよなぁ。
それはさておき、困ったのはフリーソフトウェア/OSSとしてAPIを利用する場合である。従来はAccess Key(これは公開可能な情報)をコードに埋め込んで配布でき、ユーザは単にそれを使うだけにできた。しかし認証に必要なSecret Access Keyを公開してはいけないので、今後はそれができない。ということは、ユーザごとにキーを取得してもらわないといけないわけで、たかがAmazonへのリンクを貼るだけのためにはあまりにハードルが高すぎる。
Webサービス業の申し子Amazonとしては、スタンドアロンなアプリを各ユーザがインストールして使うなんて場面は想定してないのかも知れないけど、それを余命三ヶ月と宣告するのはあんまりじゃないかね。「Yahoo!PipesとかTomblooとかから使えなくなりそうなのが困る」という声もあって、まったく困った仕様変更だと思う。
というわけで、OSSからの利用方法について何か想定していないのか、Amazonに質問のメールを投げてみた。24H以内に返事するっていうので、明日には何かわかる……かも。
2009-05-15追記
問い合わせフォームの受付完了画面に「24時間以内に返答する」って書いてあったから待っていたけど、72時間(くっ)待っても何もない。どうしたもんかなー。フォーラムにも書いてみるか?
*1 わざわざ「Amazonでは、アソシエイト・プログラムを通じて、Amazonの商品を広告して下さっているWebサイトに、年間数千万ドルを投じています」なんて書くあたりに裏の意図がありそうでキモチワルイ。
2009-05-11(月) [長年日記]
■ tDiary: search-yahoo.rbで使うAPIをXMLに戻した
先日、うまく動かなくなったからというしょうもない理由でJSON APIに変えたsearch-yahoo.rbプラグインだが、kouくんに調べてもらったら(ありがとう!)単なるencodingの問題だったということが判明し、先ほど元のXML API版に戻した。jsonライブラリ依存問題は解消。
原因はこんなところらしい(現時点での理解):
- (Yahoo!のサーバのレスポンスにはcharsetの指定もないので?)open-urlはACSII-8BITな文字列を返している
- REXML::Documentはその文字列のencodingを素直に信じて(XMLの中身は解釈せずに)インスタンスを生成する*1
- →中身はUTF-8なので変換エラー
Encoding::default_externalをUTF-8にしているから、外界から読み込むものはすべてUTF-8になってると信じ込んでいたのが×ですなぁ。
けっきょくREXML::Sourceを使って中身を解釈させてから、Documentを生成させたらちゃんと動いたのであった。以後、このあたりは最初に疑うことにしよう。というかruby 1.9で出会う問題のほとんどはコレなんだから、そういう習慣を身につけるべきである。
2009-05-10(日) [長年日記]
■ 浦和 2-3 川崎@埼玉スタジアム
「浦和のホームで勝つ」というのが、今Jリーグで一番楽しいのは間違いない。90分立ちっぱなしというのはキツかったけど、はるばるさいたままで行った甲斐があったね。
◆ 通りすがり [@等々力……?]
◆ ただただし [あああ、すみませn、いつもの癖で(笑)]