Twitterにログインして「みんなのつぶやき」をとってきてDBに入れる
昨日作ったやつ(http://d.hatena.ne.jp/koki-h/20080528/1211978415)
だと非公開の人の発言が取れないので直した。
#!/usr/local/bin/ruby require 'rss' require 'rubygems' require_gem 'activerecord' ActiveRecord::Base.establish_connection( :adapter => "sqlite3", :dbfile => "#{File.dirname(__FILE__)}/twitter_rom.db" ) class Item < ActiveRecord::Base end def get_rss_items items = [] begin uri = 'http://twitter.com/statuses/friends_timeline.rss' user = 'username' #自分のユーザ名 or メールアドレス pass = 'password' #自分のパスワード rss_str = open(uri, :http_basic_authentication=>[user, pass]).read rss = RSS::Parser.parse(rss_str) rescue return items end rss.items.each do |i| items.push(i) end items end def store_items(items) items.each do |i| next if Item.find(:first,:conditions => ["pubdate=? and link=?",i.pubDate,i.link]) item_rec = Item.new item_rec.title = i.title item_rec.pubdate = i.pubDate item_rec.description = i.description item_rec.link = i.link item_rec.save end end items = get_rss_items exit if items.length == 0 store_items(items)
Twitter4Rのようなライブラリもあるようだけどドキュメント読むのがめんどくさそうなので(それに大したことはしていないので)API仕様書の日本語訳を拾い読みして自前でやった。仕様書の人には感謝。