2008/10/27

WassrのAPIをRubyから使ってみる

参考:Wassr API Document - Wassr [お気軽メッセージングハブ・ワッサー]

(1)投稿。

#! /usr/bin/ruby -Ku

require 'uri'
require 'net/http'
require 'kconv'

begin
Net::HTTP.version_1_2
mess = Kconv.kconv("テストだよ!",Kconv::UTF8)
wmess = 'status=' + URI.escape(mess)

req = Net::HTTP::Post.new("/statuses/update.json?")
req.basic_auth "USERNAME","PASSWORD"
Net::HTTP.start('api.wassr.jp',80) {|http|
response = http.request(req,wmess)
}

rescue
print "RuntimeError: ", $!, "\n";
end

(2)タイムライン取得。
/statuses/public_timeline.xml→パブリックタイムライン
/statuses/friends_timeline.xml→フレンドタイムライン
/statuses/user_timeline.xml?id=USERNAME→指定したUSERの発言フィード
/statuses/sl_timeline.xml?id=USERNAME→SecondLifeのタイムライン(だと思う)

#! /usr/bin/ruby -Ku

require 'uri'
require 'net/http'
require 'rexml/document'

begin

Net::HTTP.version_1_2
req = Net::HTTP::Get.new('/statuses/friends_timeline.xml')
req.basic_auth("USERNAME","PASSWORD")

xml = Net::HTTP.start('api.wassr.jp',80) {|http|
http.request(req).body
}
doc=nil
doc=REXML::Document.new xml
doc.elements.each('statuses/status') do |elm|
print elm.elements['user/screen_name'].text.to_s.ljust(12)
print elm.elements['text'].text.to_s
print "\n"
end

rescue
print "RuntimeError: ", $!, "\n";
end