Ruby Library twitterlandでTweetMemeのAPIを叩いてみた
tweetmemeは素晴らしいサービスですね。
tweetmemeとはあるURLに関して、Twitterで何回つぶやかれているか教えてくれるサービスです。
TweetMeme Sunset
今回、javascriptではなくRubyでライブラリのtwitterlandからtweetmemeのAPIを叩いてみました。
日本語、英語両方ともGoogleでもあまりHITしなかったので知らない方が結構いるかなと。
まぁ、つい10分前に出来たので穴があると思います。
もっとこうしたら良いよ!ってあったら教えてください。
んで、とりあえずjavascriptから。
ブログとかに数字とグリーンの[retweet]ボタンを見た事がある方もいると思います。
あれ、javascriptで簡単に貼れるんですよ。
<div id="tweetmeme"> <script type="text/javascript"> tweetmeme_style = 'compact'; tweetmeme_service = 'bit.ly'; tweetmeme_url = 'http://www.example.com'; tweetmeme_source = ''; </script> <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"></script> <div>
こんな感じ。
ただ、1pageに20個とか30個とか表示したい場合は重い!重すぎる!
そんな訳で、RubyでmemeのAPI叩こうと調べました。
TweetMeme Sunset
ふむふむ、なんて読んでいたら
TweetMeme Sunset
File: README — Documentation for squeejee/twitterland (master)
ライブラリ発見!
ktkrって事で早速
$sudo gem install twitterland ======================================================================== Thanks for installing Gemcutter! You can now run: gem push publish your gems for the world to use and enjoy gem owner allow/disallow others to push to your gems gem webhook register urls to be pinged when gems are pushed ======================================================================== When you HTTParty, you must party hard! Successfully installed json_pure-1.2.0 Successfully installed rubyforge-2.0.3 Successfully installed gemcutter-0.3.0 Successfully installed hoe-2.5.0 Successfully installed mash-0.0.3 Successfully installed crack-0.1.4 Successfully installed httparty-0.4.3 Successfully installed twitterland-0.4.3 8 gems installed Installing ri documentation for json_pure-1.2.0... Installing ri documentation for rubyforge-2.0.3... Installing ri documentation for gemcutter-0.3.0... Installing ri documentation for hoe-2.5.0... Installing ri documentation for mash-0.0.3... Installing ri documentation for crack-0.1.4... Installing ri documentation for httparty-0.4.3... Installing ri documentation for twitterland-0.4.3... Installing RDoc documentation for json_pure-1.2.0... Installing RDoc documentation for rubyforge-2.0.3... Installing RDoc documentation for gemcutter-0.3.0... Installing RDoc documentation for hoe-2.5.0... Installing RDoc documentation for mash-0.0.3... Installing RDoc documentation for crack-0.1.4... Installing RDoc documentation for httparty-0.4.3... Installing RDoc documentation for twitterland-0.4.3...
何事もなくインストール成功。わーい。
んで、requireでちょっと躓きました。
require 'rubygems' require 'twitterland' (以下省略)
これで実行すると
$ ruby testMeme.rb /usr/lib/ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: httparty(0.4.3 not = 0.4.5) (Gem::LoadError) from /usr/lib/ruby/1.8/rubygems.rb:261:in `activate' from /usr/lib/ruby/1.8/rubygems.rb:68:in `gem' from /var/lib/gems/1.8/gems/twitterland-0.4.3/lib/twitterland.rb:7 from /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' from /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `require' from testMeme.rb:4
依存関係にあるhttpartyというライブラリのversionが0.4.5じゃねぇ!と怒られました(´・ω・`)ショボン
現在は0.5.0が最新なのでversion指定してインストールしてやります。
$ sudo gem uninstall httparty $ sudo gem install httparty --version 0.4.5 $ ruby testMeme.rb /usr/lib/ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: httparty(0.4.3 not = 0.4.5) (Gem::LoadError) from /usr/lib/ruby/1.8/rubygems.rb:261:in `activate' from /usr/lib/ruby/1.8/rubygems.rb:68:in `gem' from /var/lib/gems/1.8/gems/twitterland-0.4.3/lib/twitterland.rb:7 from /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' from /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `require' from testMeme.rb:4
依存関係にあるhttpartyというライブラリのversionが0.4.3じゃねぇ!と怒られました(´・ω・`)ショボン
・・・ふ・ざ・け・る・な!w
twitterlandというライブラリの情報自体が日英共に非常に少なく、この情報は全くグーグル先生も教えてくれませんでした。
なので、
/var/lib/gems/1.8/gems/twitterland-0.4.3/lib/twitterland.rb
を直接修正しました。
gemでインストールすると一緒にhttpartyの0.4.3がインストールされる癖に
gem 'httparty', '0.4.5' require 'httparty'
なんて呼び出しをしていたので、0.4.3に修正。
エラーが消えてくれました。ヤッタネ!
なんか問題あったら教えてください。
んで、
meme = Twitterland::TweetMeme.url_info("http://www.example.com")
これでCoreAPIを叩けました。
MashClassとして返って来ます。
p meme
で中身を見ると
<Mash status="success" story=<Mash comment_count="0" created_at="2010-01-09 04:12:07" excerpt="\343\203\217\343\203\240\343\202\271\343\202\277\343\203\274\351\200\237\345\240\261 : \343\201\244\343\201\204\343\201\253\346\210\221\343\201\214\345\256\266\343\201\256\343\201\212\351\242\250\345\221\202\343\201\214\343\201\204\343\201\204\343\201\256\343\201\253\343\201\252\343\202\213 http://hamusoku.com/archives/2217169.html" media_type="news" title="\343\201\244\343\201\204\343\201\253\346\210\221\343\201\214\345\256\266\343\201\256\343\201\212\351\242\250\345\221\202\343\201\214\343\201\204\343\201\204\343\201\256\343\201\253\343\201\252\343\202\213:\343\203\217\343\203\240\343\202\271\343\202\277\343\203\274\351\200\237\345\240\261" tm_link="http://tweetmeme.com/story/425003970" url="http://hamusoku.com/archives/2217169.html" url_count=8>>
こんな中身みたいです。
詳しい使い方は上のLinkから見てくださいねー。
まだ実装していませんが、自分が開発・運営中の
現役主婦が保険見直しについて勉強しながら作るサイト
ここで実装する予定です。
3連休中にはやってしまいますので、出来たらまた追記します。
(今なら、20個memeボタンを何も考えずに、阿呆みたいにただポンッと置いてあるので重さを実感できますw)
んじゃ!