はてブAPIで遊んでみる

はてなブックマークAPIを使ってRubyのお勉強.

はてなブックマーク件数取得API

このAPIは,XML-RPC プロトコルなので,Ruby 1.8の標準ライブラリ XMLRPC4R を使用する.実際には,XMLRPC::Client クラス.

URLで取得する場合.
require 'xmlrpc/client'

urls = ["http://d.hatena.ne.jp/",
        "http://b.hatena.ne.jp/",
        "http://d.hatena.ne.jp/ooolong/20070420/1177083969"]

@URI = "http://b.hatena.ne.jp/xmlrpc"

client = XMLRPC::Client.new2(@URI)
res = client.proxy("bookmark").getCount(*urls)

res.each do |url, count|
  puts "#{count} : \t #{url}"
end

実行結果はこんな感じ.

123 :      http://d.hatena.ne.jp/
231 :      http://d.hatena.ne.jp/ooolong/20070420/1177083969
949 :      http://b.hatena.ne.jp/
Site毎に取得する場合.
require 'xmlrpc/client'

site = "http://d.hatena.ne.jp/ooolong/"
@URI = "http://b.hatena.ne.jp/xmlrpc"

client = XMLRPC::Client.new2(@URI)
res = client.proxy("bookmark").getTotalCount(site)

p res

はてなブックマークエントリー情報取得API

このAPIは,任意のURLをGETリクエストすると,結果をJSON形式で返してくれる.ので,まず JSON Library for ruby をインストール.

JSON Library for ruby のインストール
>gem install json

Ruby標準ライブラリ net/http を使用する.

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

Net::HTTP.version_1_2

host = 'b.hatena.ne.jp'
url  = 'http://d.hatena.ne.jp/ooolong/20070420/1177083969'
path = '/entry/json/' + url

# startでHTTPセッションを開始し,GETリクエストを送信
Net::HTTP.start(host, 80) { |http|
  @res = http.get(path).body
}

# ()抜きしてからパースしないと,JSONに怒られる
json = JSON.parse(@res.sub!(%r!^\((.*)\)$!) { $1 })

# コメントのみ配列に詰める
comments = []
json['bookmarks'].each { |item|
  if item['comment'] != ''
    comments.push({
      :date => item['timestamp'][0..9],
      :user => item['user'],
      :cmnt => item['comment'].tosjis})
  end
}

puts json['title'].tosjis
puts json['count']
puts json['screenshot']
comments.each { |item|
    puts item[:date] + " : " + item[:user] + " : " + item[:cmnt]
}

実行結果はこんな感じ.

脱・下流エンジニア (仮) - はてなと考えるにっぽんのWeb2.0
231
http://screenshot.hatena.ne.jp/images/120x90/1/4/b/a/1/294de4ef526cd0618f9320e23059562820e.jpg
2007/04/23 : libkazz : web開発者の心得っぽいこと,
2007/04/23 : ag-commerce : WD Live!(Web Designing主催セミナー)「株式会社はてなと考えるにっぽんのWeb2.0.そのサービスとサイト運営 伊藤直也氏 × 須賀正明氏」に参加してきた.
2007/04/23 : ro-man : はてなの提灯持ちなんて、はてなじゃない
2007/04/23 : gbs01 : 脱・下流エンジニア (仮) - はてなと考えるにっぽんのWeb2.0
2007/04/23 : hiro_y : 「サービスとかアイデアのコアになる哲学がぶれなければよい」
2007/04/22 : uzuki-first : >意外だったのは,どんな新しいWebサービスがあるのかって特に日々チェックしたりしないらしい. ここに哲学がある。
2007/04/22 : takayukii : 参考になる。伊藤直也の話。
2007/04/22 : kusigahama : あー
2007/04/22 : sasada : とても素晴らしい講演。あとは、ちゃんと実行してね(はぁと ooolongさん、レポートありがとうございました。
2007/04/22 : osisi :  <開発者が作る・少人数で作る・短い時間でつくる>
2007/04/22 : rsyudou : 継続しないサービスは流行らないの法則。知らなかった。
2007/04/22 : rytich : とにかく早く作ってリリース運営しながらいじる
2007/04/22 : tsupo : むしろあまり見ないようにしている / 長い間妄想していると,だんだん自分のアイデアに対して疑心暗鬼になったりしてくる
2007/04/22 : masui : 伊藤氏の講演記録。経験と合致する。こまめに手を入れてないと何故かユーザが離れる。
2007/04/22 : serimaryo : 自戒の意味もこめてブクマ
2007/04/21 : denken : 
2007/04/21 : onk : 「1人で作る」
2007/04/21 : ezookojo :  「いっぱいトラフィックが来たら…」 → まず来ない
2007/04/21 : samurai20000 : マネジメントもやってる。サービスの開発は基本一人
2007/04/21 : ysano2005 : 「コードを書けない人から命令されても人は動かないとも…,これ激しく同感.」
2007/04/21 : p4life :  はてなフィロソフィ
2007/04/21 : naoya :  感想ありがとうございます。