2011-02-28

はてなブックマークの奇妙な挙動

とりあえずはてなブックマークの問題を解決した。ふしぎなことに、コールバック関数の名前が問題だったようだ。

はてなブックマークのAPIは、JSONPが使える。この時のコールバック関数名は、perlの正規表現、/^\$?[a-zA-Z0-9\[\]\.\_]+$/に一致しなければならないとされている。わたしは、コールバック関数として、hatebu_callbackという名前の関数を使っていた。ところが、どうもこの名前では動かないようだ。確実にブックマークされているURLであっても、hatebu_callback(null)が帰ってきてしまう。色々と試してみたが、hatebu_callbackというコールバック関数名のときだけ、この問題が起こるようだ。なぜだろう。とりあえず、コールバック関数の名前を変更しておいた。

なお、この問題は、すべてのURLで起こるわけではない。その辺も謎だ。どうも2月23日にブックマークされた以降のURLにおこるのではないかと思っている。

しかし、正規表現によるURLのパースは、あまり良い実装とは言えないと思うのだが。

No comments: