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を実行してください。

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

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

gem install scouter

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

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

scouter -u [page url]

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

🎉 Rubyプログラムでの使い方

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

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を配列で渡すこともできます。

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

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

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

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

* 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に追加対応

📚 おすすめの書籍