最近トラブル続きのTwitterのかわりにWassrを使いはじめたひとたちにフォローしていただいてたくさんメールが来ました。
去年たくさんできたtwitterみたいなサービスの中で、自分が注目していたのはもごもごとWassrです。このふたつのサービスにはTwitter同様APIが用意されているだけでなく、そのAPIがTwitterのAPIと互換になっていると書かれていたからです。
1年前に書けばよかったのにとおもいつつ、今日はサービスのAPIがほかのサービスと互換にすることについて書きます。
Twitterのクローンであれば、そのサービスにTwitterとおなじAPIを用意すれば、Twitter用に作られた多数のツールをそのまま流用することができます。
実例として、Twitterのタイムラインを見たり投稿したりできるFirefoxの拡張機能TwitterFoxを使ってもごもごのタイムラインを表示、投稿できるかためしてみました。twitternotifier@naan.net/components/nsITwitterNotifier.jsの中にあるtwitter APIのサーバ名が書かれている
const TWITTER_API_URL = "https://twitter.com/";
を、もごもごのAPIのサーバ名
const TWITTER_API_URL = "http://api.mogo2.jp/";
に書き換えるだけで、Twitterでいうfriends_timeline(ともだちの発言一覧)を得ることができました。もごもごにともだちがいないので自分一人ですけど....
Twitterfoxからもごもごに投稿することもできました。が、投稿はされていてページには反映されるもののTwitterfoxにはエラーが発生したと表示されるので、投稿のレスポンスがTwitterのAPIとは微妙に違っているのかもしれません。
Firefoxの拡張機能はたいていはjavascriptで書かれているので直接編集することができますが、Windowsで人気なTwitのようにOSネイティブのアプリケーションはバイナリエディタでしかAPIのエンドポイントを書き換えたりできません。そのアプリケーションがもともとアクセスするサーバの名前よりも、自分の新しいサービスのAPIのサーバの名前の方が長いとバイナリエディタで上書きすることができなくなってしまうので、同じ長さにするか、もしくはそれより短くしておくとバイナリの書き換えが不可能、ということがなくなります。
元のサービスにない新しい機能を追加した時に、元のサービスのAPIデザインとは別に設計した方が効率的にできることもあるでしょう。もとのサービスのデザインがいまいちだということもあるでしょう。
その結果del.icio.usのために書かれたAPIライブラリのホスト名を書き換えるだけでFavesのデータにアクセスできるようになって、非常に便利になりました。
トラックバック元エントリにこのエントリへのリンクがない場合はトラックバックを受け付けません。
http://labs.gmo.jp/mt/mt-tb.cgi/223
comments