A Perfect Night For Bananafish

だがそれを語るには人生は短すぎる

Jiskoのタイムラインをrubyで取得する

Twitter系ミニブログJiskoのタイムラインをrubyで取得してみる。
あえてのJisko。APIガイドhttp://wiki.jisko.net/wiki/APIがスペイン語だよ、わかんねーよ。

Ruby+JiskoでRiskoにすればリスっぽいじゃん。木の実の代わりにRuby持たせればカンペキ。
↓JiskoのマスコットJisky
http://jisko.net/static/img/logos/logo_jisky.png


パブリックとフレンドとユーザー、それぞれのタイムラインを取得。
パブリック・タイムラインの取得時にはベーシック認証(basic_auth)はいらないけど、面倒なのでそのまま。
ステータスはとりあえずSJISで表示。

APItwitterとほぼ同じなのでTwitter!―Twitter APIガイドブック

Twitter!―Twitter APIガイドブック

Twitter!―Twitter APIガイドブック


のサンプルをちょっと書き換えただけ。

require 'net/http'
require 'json'
require 'kconv'

class Jisko
	HOST='jisko.net'

	def self.public_timeline()
		self::get_statuses("/statuses/public_timeline.json")
	end
	
	def self.friends_timeline()
		self::get_statuses("/statuses/friends_timeline.json")
	end
	
	def self.user_timeline()
		self::get_statuses("/statuses/user_timeline.json")
	end
	
	def self.get_statuses(path)
		source = get(path)
		self::display_statuses(source)
	end
	
	def self.get(path)
		user="yocifico"		#username
		pass="******"	#[API key]
		
		req = Net::HTTP::Get.new(path)
		req.basic_auth user, pass
		json=Net::HTTP.start(HOST,80) do |http|
			http.request(req).body
		end
	end

	def self.display_statuses(source)
		JSON.parse(source).each do |st|
			printf("%-16s\t%s\n",st['user']['screen_name'],st['text'].tosjis);
		end
	end
end

Jisko::public_timeline()

Jisko::friends_timeline()

Jisko::user_timeline()

XML形式でParse ErrorになったのでJSONで取得することにしたのだが、rubyのjsonライブラリのインストールで結構ハマった。
rubyのjsonライブラリのインストール - A Perfect Night For Bananafish