昔作ったSBM comments APIというのがあります。これは各種ソーシャルブックマークに投稿されたコメントをまとめて取得するAPIとして使えるYahoo! Pipes。
で、そのしばらく後にSBM bookmarks APIを作りました。こっちは、コメントが無いブックマークも含めて取得できるやつ。同様にYahoo! Pipesです。
ほとんど仕組みは一緒ですが、歴史的経緯があって2つ存在している。対応するSBMサービスが増やしたり、仕様変更に対応させたり、時差問題を修正したり、メンテのたびにこの2つを修正するのが面倒なので、大幅な内部仕様を変更しました。
commentsの方を先に作ったわけですが、後から作ったbookmarksの方がデキが良いので、commentsの方の中身を全部消して、bookmarksの方をベースに作り直しました。具体的に言うと、渡されたURLをbookmarksにそのまま渡して、戻ってきたデータでコメントが入ってるものだけ抽出するようにしました。
ソースは以下。以前のもの(その後Buzzurl対応や時差修正でさらに複雑になっていました)と比べるとスッキリ感は一目瞭然です。
返されるデータの仕様はほとんど変わってないので、APIを使っていた人は今まで通り使えると思います。とりあえず、私が過去に作ったLDCの画面にSBMコメントを埋め込むGMスクリプトと、はてブの画面にSBMコメントを埋め込むGMスクリプトはそのまま正常に動作しているのを確認しています。
今までと違う点を挙げるとすれば、
といったところ。あと今後SBM bookmarks APIの方が進化したとき、SBM comments APIも同時に同じ進化をすることになります。
だいぶラクになった。