Twitterをnet/httpから
Twitter.comのAPIをいじって見ようと思って、net/httpを使ってみた。気の利いたライブラリもあるのかもしれないけど、Twitter APIってそんなの不要なほどシンプルな気がする。
とはいえ、ただHTTPで叩いた結果から一部を表示するだけのことでも、XMLをパーズしたり実体参照をunescapeしたりと色々やったことのない課題が出てきて1時間ぐらいかかってしまった。
ともあれ、「ruby friends.rb hoge」とやればユーザーhogeがfollowしているユーザーの名前をリストアップするところまでできた。本当はfollowしているユーザー、あるいはfollowerが、どの程度アクティブなのかといったことを調べるスクリプトを書くつもりで始めたのだけど、ひとまず第一歩終わり。
require 'cgi' require 'net/http' require "rexml/document" $KCODE='u' user = ARGV.shift Net::HTTP.start('twitter.com', 80) {|http| response = http.get("/statuses/friends/#{user}.xml") doc = REXML::Document.new response.body doc.elements.each("*/user/name") {|element| name = element[0].to_s print CGI.unescapeHTML(name),":" } puts }