TimelogAPI

TimelogAPIを利用する場合の、サンプルコードをアップします。

sample1. パブリックタイムラインを取得する場合

#!/usr/bin/ruby -Ke
require 'net/http'
require 'uri'
require 'kconv'
require 'rexml/document'
$KCODE = 'EUC'

doc = nil
count = '20'
format = 'xml'
uri = URI.parse("http://api.timelog.jp/public_msg.asp?cnt=#{count}&fmt=#{format}")
req = Net::HTTP::Get.new(uri.request_uri)
req['User-Agent'] = 'Ruby-TestBrowser'
Net::HTTP.start(uri.host, uri.port){|http|
  response = http.request(req)
  doc = REXML::Document.new(response.body)
}

doc.elements.each('memos/entry'){|i|
  print "--- Start Entry ---\n"
  print "MemoID: #{i.elements['id'].text.toeuc}\n"
  print "MemoText: #{i.elements['memo'].text.toeuc}\n"
  print "Tag: #{i.elements['tag'].text.toeuc}\n" unless i.elements['tag'].text.nil?
  print "ToID: #{i.elements['toid'].text.toeuc}\n" unless i.elements['toid'].text.nil?
  print "UserID: #{i.elements['author/id'].text.toeuc}\n"
  print "UserName: #{i.elements['author/name'].text.toeuc}\n"
  print "--- End Entry ---\n"
}

sample2. 自分と友人のタイムラインを取得する場合

#!/usr/bin/ruby -Ke
require 'net/http'
require 'uri'
require 'kconv'
require 'rexml/document'
$KCODE = 'EUC'

doc = nil
count = '20'
format = 'xml'
uri = URI.parse("http://api.timelog.jp/friends_msg.asp?cnt=#{count}&fmt=#{format}")
req = Net::HTTP::Get.new(uri.request_uri)
req['User-Agent'] = 'Ruby-TestBrowser'
req.basic_auth("account@example.com", "password")
Net::HTTP.start(uri.host, uri.port){|http|
  response = http.request(req)
  doc = REXML::Document.new(response.body)
}

doc.elements.each('memos/entry'){|i|
  print "--- Start Entry ---\n"
  print "MemoID: #{i.elements['id'].text.toeuc}\n"
  print "MemoText: #{i.elements['memo'].text.toeuc}\n"
  print "Tag: #{i.elements['tag'].text.toeuc}\n" unless i.elements['tag'].text.nil?
  print "ToID: #{i.elements['toid'].text.toeuc}\n" unless i.elements['toid'].text.nil?
  print "UserID: #{i.elements['author/id'].text.toeuc}\n"
  print "UserName: #{i.elements['author/name'].text.toeuc}\n"
  print "--- End Entry ---\n"
}

Ruby1.8系標準添付のライブラリのみ使用しています。
ご参考になれば幸いです。