ブックマークユーザー数JSONフィード取得API

任意の記事のブックマークユーザー数を取得します。

http://api.buzzurl.jp/api/counter/v1/json?url=記事URL&cb=Callback関数名
リクエストパラメータ
名前 説明
記事URL ブックマークユーザー数を取得したい記事のurlをurlencodeしたもの(最大30個まで複数設定可能)
cb JSONP(JSON with padding)用のcallbackを指定します(任意)
レスポンス
名前 説明
url 記事のURL
title 記事のタイトル
users 記事をブックマークしているユーザー数
サンプル
リクエスト
http://api.buzzurl.jp/api/counter/v1/json?url=http%3A//ecnavi.jp/&url=http%3A//api.buzzurl.jp/&cb=Sample.Callback
レスポンス
Sample.Callback[{
"url" :  "http://ecnavi.jp",
"title" : "ECナビ",
"users" : "11"
},
{
"url" : "http://api.buzzurl.jp/",
"title" : "ECナビ人気ニュースβ版 / ニュースに特化したソーシャルブックマーク サービス",
"users" : "4"
}]
Perlサンプルモジュール
package ECNavi::HotNews::API::Counter;
use strict;
use warnings;
our $VERSION = 0.01; 

use URI;
use LWP::UserAgent;

BEGIN {
  use Carp;
  our $HAVE_JSON_SYCK;
  eval { require JSON::Syck; $HAVE_JSON_SYCK = 1 };
  eval { require JSON } unless $HAVE_JSON_SYCK;
  Carp::croak("JSON::Syck or JSON required to use " . __PACKAGE__) if $@;
  *_parse_json =
      $HAVE_JSON_SYCK  ? sub { JSON::Syck::Load($_[1]) }
                       : sub { JSON::jsonToObj($_[1])  };
}

sub get_users {
  my ($self, @urls) = @_;
  my $res = _api_request(@urls);
  my $json = $self->_parse_json($res);
  return @{$json};
}

sub _api_request {
  my @urls = @_;
  my $api = URI->new('http://api.buzzurl.jp/api/counter/v1/json');
  $api->query_form(url =>\@urls);
  my $ua = LWP::UserAgent->new;
  my $res = $ua->get($api->as_string);
  if ($res->is_success) {
    return $res->content;
  } else {
    die $res->status;
  }
}

1; 
Perlサンプルプログラム
#!/usr/bin/perl
use strict;
use ECNavi::HotNews::API::Counter;

my @urls = (
  'http://ecnavi.jp/',
  'http://api.buzzurl.jp/',
  'http://list.ecnavi.jp/',
);  
    
my @result = ECNavi::API::Counter->get_users(@urls);
for my $res ( @result ) {
  print "url : ", $res->{url}, "\n";
  print "title : ", $res->{title}, "\n";
  print "users : ", $res->{users}, "\n";
  print "---\n";
}
Perlサンプルプログラム実行結果
url : http://ecnavi.jp/
title : ECナビ
users : 10
---
url : http://api.buzzurl.jp/
title : ECナビ人気ニュース
users : 10
---
url : http://list.ecnavi.jp/
title : ECナビリスト
users: 10
---
Javascriptサンプルプログラム
<div id="urls_sample"></div>
<script type="text/javascript">
function displayUrls(json) {
    var ul = document.createElement('ul');
    
    for (var i = 0; i < json.length; i++) {
        var li = document.createElement('li');
        var a = document.createElement('a');
        a.setAttribute('href', json[i].url);
        a.appendChild(document.createTextNode(json[i].title));
        li.appendChild(a);
        li.appendChild(document.createTextNode(" (" + json[i].users + "users)"));
        ul.appendChild(li);
    }
    document.getElementById('urls_sample').appendChild(ul);
}
</script>
<script type="text/javascript" src="http://api.buzzurl.jp/api/counter/v1/json?url=http%3A//ecnavi.jp/&url=http%3A//api.buzzurl.jp/&url=http%3A//list.ecnavi.jp/&url=http%3A//labs.ecnavi.jp/&url=http%3A//labs.ecnavi.jp/developer/&cb=displayUrls" charset="UTF-8"></script>
Javascriptサンプルプログラムの実行結果

BuzzurlにブックマークBuzzurlにブックマーク このエントリーを含むブックマーク