酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

Scouter FB/Twitter/はてぶ/Pocket/G+/feedly/GitHubなどのカウントを収集

俺の勉カレ』でFacebookやTwitter、はてなブックマークのカウントを収集していたので、 その部分を『scouter』という名前でGem化してみました。 今回Gem化するときに次のサービスまで対応させました。

  * Buffer
  * Facebook
  * feedly
  * GitHub
  * Google+
  * Hatena Bookmark(はてなブックマーク)
  * Linkedin
  * Pinterest
  * Pocket
  * Twitter

インストール手順

いつもどおりGemfileに以下を追加して、bundle installを実行してください。

1
2
# Buffer/Facebook/Feedly/GitHubGooglePlus/HatenaBookmark/Twitter, and etc
gem 'scouter'

もしくはコマンドライン上で以下のコマンドを実行。

1
gem install scouter

コマンドラインでの使い方

URLのシェア数をコマンドライン上で確認したいということは殆ど無いですが、勢い余って作りましたw

1
scouter -u [page url]

と実行すると、ソーシャルでシェアされた数を取得する事ができます。

Ruby プログラムでの使い方

プログラム内で定期的にシェア数を収集したい場合は以下のコードで収集可能です。

1
2
3
4
5
6
7
8
9
10
11
12
13
require 'scouter'

results, errors = Scouter.get_count('http://google.com')
results.each do |url, service|
  puts url #=> http://google.com
  puts service.buffer           #=> 129
  puts service.facebook         #=> 166458
  puts service.googleplus       #=> 139198
  puts service.hatenabookmark   #=> 13466
  puts service.linkedin         #=> 216
  puts service.pinterest        #=> 1
  puts service.twitter          #=> 1358112
end

引数にはURLを配列で渡す事もできます。

1
2
3
require 'scouter'

results, errors = Scouter.get_count(['http://google.com', 'http://www.yahoo.co.jp'])

また、特定のサービスのカウントだけを取得することも可能です。

1
2
3
4
5
6
results, errors = SocialCounter.new('http://google.com', [Scouter::Facebook, Scouter::Twitter])
results.each do |url, service|
  puts url #=> http://google.com
  puts service.facebook         #=> 166458
  puts service.twitter          #=> 1358112
end

ちなみに、取得できるサービスクラスの一覧はこちら。

1
2
3
4
5
6
7
8
9
10
  * Scouter::Buffer
  * Scouter::Facebook
  * Scouter::Feedly #=> feedのURLの場合のみsubscriber数を取得
  * Scouter::Github #=> githubのリポジトリURLの場合のみ、star数を取得
  * Scouter::GooglePlus
  * Scouter::HatenaBookmark
  * Scouter::Linkedin
  * Scouter::Pinterest
  * Scouter::Pocket
  * Scouter::Twitter

Scouterの特徴

ものすごく簡単に特徴を。

  * 各サービスに並列でAPIにアクセスする
  * 一度のAPIアクセスで複数のURLの結果を取得できるサービスはちゃんと対応
  * 取得したいサービスを限定できる
  * エラーはサービスごとに個別に出力
  * メジャーなサービスをひと通り網羅

ISSUEやPull Request 熱烈大歓迎

どちらかというと自分の勉強のために作ったgemですが、もしご指摘頂ければ全力で修正しますので、いつでも言ってください!

morizyun/scouter

変更来歴

(12/21 13:35) GitHubに追加対応

おすすめの書籍