TrackBackの代わりにWebサービスAPIを利用してインバウンド・リンクをリスト化して表示しようかと考えた。blogにTrackBackの機能を持たせるのは悪くはないのだけどコストが高いと思うので、WebサービスAPIを利用して低コストでTrackBack的な情報をページに持たせることが出来たら良いなと。結果はうまくいかなかったのだけど。
TrackBackがコストが高いというのはやはりスパムの問題が大きい。規模の小さいサイトならTrackBack受信の仕組みが稼動するのはスパムを受けた時ばかりという状態になったりするだろうし、規模の大きいサイトならとてつもなく大量のスパムを戦うことになるだろう。つまり、TrackBackを受けることよりもスパムを弾くことに注力せざるを得ない。その結果としてpermalinkからTrackBack Auto-Discoveryを削除して、目視でTrackBack送信先URLを探させ指定させるなどといったアレな実装に行きついてしまったりもする。
対してインバウンド・リンクをWebサービスAPIで取得することによってTrackBackに似た情報を生成する場合は、スパムと戦う必要はほとんどない。TrackBackと比較して劣るところは多いと思うがスパム・フリーであること(絶対にというわけではないけど)は魅力的。
というわけで、Yahoo! Search Web ServicesのWeb Search APIを利用してJavaScriptでインバウンド・リンクをリスト化するものを作ってみた。インバウンド・リンクを検索結果として得るにはクエリ文字列で、
link:http%3A%2F%2Fexample.com%2Ffoo%2Fbar.html
などと指定してやれば良い(See Also: Yahoo! Help - Search - Search Tips)だけなので、特に難しいことはない。
試してみればわかるが、del.icio.usなどのあまり対象のページに持たせても意味の無いインバウンド・リンクをフィルタする必要がある上、それらを利用したサイトなどもフィルタしなければならない。スパムと戦うよりはコストはかからないだろうけど、こちらも効率的に対象のページに有用な情報を取得できるというわけではない。
Yahoo! Search Web ServicesにはSite Explorer Inbound Links APIというそのものずばりなAPIもあるのだけど、こちらはdel.icio.usばかりになってしまってもっと使いづらい。
Technoratiはまさにこういったインバウンド・リンクをリスト化するためにあるといっても過言ではないのだけど、重すぎて使い物にならなかった時期が長くて印象が悪く、使う気になれない。今もお世辞にも軽いとは言えないし、フィルタしなければならないリンクも結構出てくる。
こういったことを実現するために使えるWebサービスAPIは、フィードの提供に限ったものなども含めればいっぱいありそうではある。いわゆるblog検索なんかは全部そうだし。ちゃんと探してあとで完成品を書く。