はてブ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 : 感想ありがとうございます。