Twitterを使っていると、日々つぶやきがトラッキングされるので、これを有効利用したくなってくる。
例えば、日報を作成したり、以前つぶやいたアイデアを見直したり。
ところが、Twitterでは過去の「自分の」つぶやきを検索することは基本的にはできない。1ページに20個までのつぶやきしか表示されないため、仕方なく「もっと読む」を何度かクリックし、都度ブラウザの検索を使って目的のつぶやきを見つけるとか、Googleのsite:オプションを使って検索するとか、若干空しい作業をしてきた。
で、最近、フォロー中の中にもそのよーなつぶやき(その1、その2)を見かけるようになったので、ざっくりTwitter APIを見てみたんですけど、やっぱり「ユーザを指定して語句を検索する」ようなAPIは提供されていない模様。
まぁ、大規模なユーザを抱えるTwitterでは、サーバに負荷をかけるような検索はできるだけ避けたいのかもしれないな、とも思える。
で、APIを眺めてると、最大200件のつぶやきは取得できるので、コレを使って定期的に自分のつぶやきをローカルのDBやテキストで保存しておき、ローカルで検索するしかないのかな、と。
ということで、直近の200件のつぶやきを取得するRubyスクリプトを書いてみた。
確認環境は久しぶりにMac OS X Leopard。RubyのバージョンはMacPortsでインストールした
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9]
1.8系。ライブラリが提供されていれば1.9系でもWindowsでも動くと思う。
まず、Twitter4RというTwitter API用のライブラリをインストール。
gem install twitter4r
スクリプトはコチラ。
require 'rubygems'
gem('twitter4r')
require 'twitter'
def url(id)
"http://twitter.com/#{@login}/status/#{id}"
end
@login = 'your id'
password = 'your password'
twitter = Twitter::Client.new(:login=>@login, :password=>password)
twitter.timeline_for(:me, :count=>200) { |status|
puts "#{status.id} #{status.text} #{url(status.id)}"
}
とりあえず、つぶやきのIDとその内容、Twitter上のURLが出力されるようにしておいた。
実行結果はこんな感じ。

Twitter APIの結果はUTF-8だとか書いてあった気がするので、もしかしたらWindowsのコマンドプロンプトだと文字化けするかもしんない。
適当に変換してください。
あとは、スクリプトをdaemonにして、たとえばつぶやきIDとかで比較して差分だけを保存するような形にしておけば、とりあえず、自分のつぶやきをトラッキングする、という目的は達成できると思う。
余裕があったらGAEとかでサービス化して公開するところなんですけど。
下記サイトに感謝。
最近のコメント