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

Ruby XMLRPC4R(標準添付ライブラリ)を使用したはてなブックマーク件数取得APIのサンプル

XMLRPC::Client#call - 例外が発生するバージョン

#!/usr/local/bin/ruby -w
require 'xmlrpc/client'

end_point = 'http://b.hatena.ne.jp/xmlrpc'

urls = [
  'http://www.rubyonrails.org/',
  'http://www.rubyonrails.com/',
  'http://rubyonrails.org/',
  'http://rubyonrails.com/']

client = XMLRPC::Client.new2(end_point)
begin
  result = client.call('bookmark.getCount', *urls)

  result.each do |url, count|
    puts "#{url} : #{count}"
  end
rescue XMLRPC::FaultException => e
  puts "Error: #{e.faultCode}: #{e.faultString}"
end

実行結果

http://rubyonrails.org/ : 3
http://www.rubyonrails.org/ : 87
http://rubyonrails.com/ : 1
http://www.rubyonrails.com/ : 45

XMLRPC::Client#call2 - 例外が発生しないバージョン

client = XMLRPC::Client.new2(end_point)
ok, result = client.call2('bookmark.getCount', *urls)

if ok
  result.each do |url, count|
    puts "#{url} : #{count}"
  end
else
  puts "Error: #{result.faultCode}: #{result.faultString}"
end

XMLRPC::Client#proxy - 例外が発生するバージョン

client = XMLRPC::Client.new2(end_point)
bookmark = client.proxy('bookmark')
begin
  result = bookmark.getCount(*urls)

  result.each do |url, count|
    puts "#{url} : #{count}"
  end
rescue XMLRPC::FaultException => e
  puts "Error: #{e.faultCode}: #{e.faultString}"
end

XMLRPC::Client#proxy2 - 例外が発生しないバージョン

client = XMLRPC::Client.new2(end_point)
bookmark = client.proxy2('bookmark')
ok, result = bookmark.getCount(*urls)

if ok
  result.each do |url, count|
    puts "#{url} : #{count}"
  end
else
  puts "Error: #{result.faultCode}: #{result.faultString}"
end