Daily Archives: 2011/01/27

twitterのタイムラインを取るrubyスクリプト

1
Filed under Ruby, ウェブサービス
Tagged as ,

twitterのタイムラインをガッツリ取得して、ローカルでそのデータをゴニョゴニョしたいな、と思いついて、ちょっと調べたら、簡単そうなライブラリがrubyにあることを知ったので、試してみました!

ruby用twitterライブラリ

ruby用twitterライブラリの存在を知ることが出来たのは、このページ「Greenbear Laboratory – Ruby Twitter Gem簡易リファレンス」のおかげです。このページを参考に作業を進めていきます。
その前に、次のコマンドでRubyGemsでtwitterに関係したライブラリを検索してみます。

$ gem search -r twitter
 
*** REMOTE GEMS ***
 
atok-twitter (0.1.0 x86-mswin32)
bcms_twitter_module (1.1.3)
devise-twitter (0.1.1)
(…略)
sml-twitter (0.7.3)
teejayvanslyke-twitter (0.6.11)
twitter (1.1.1)
twitter-auth (0.1.22)
twitter-auth-with-mongo-mapper (0.1.1)
(…以下略)

たくさん見つかりました!
atok-twitterなど気になるものもありますが、今回使うのは、最初に表示されたtwitterライブラリ(http://twitter.rubyforge.org/)。現在のバージョンは1.1.1の様子ですが、これをインストールします。
最新版をインストールするので、次のようにコマンドを叩きます。(Mac OS Xなので、sudoで実行)

$ sudo gem install twitter

寄り道:RubyGemsのアップデート

簡単にインストール出来た!と思ったら、自分の環境の場合、RubyGemsのバージョンが古いと言われましたので、次のコマンドでアップデートしておきます。

$ sudo gem update --system
Updating RubyGems
Updating rubygems-update
Successfully installed rubygems-update-1.4.2
Updating RubyGems to 1.4.2
Installing RubyGems 1.4.2
RubyGems 1.4.2 installed
File not found: README

OKだったみたいなので、再度上記コマンドを実行し、twitterライブラリをインストールします。

twitterライブラリを試してみる

問題なくインストール出来たら、下記のようなテキストファイルを testTwitter.rb として作成します。

1
2
3
4
require "rubygems"
require "twitter"
 
puts Twitter.user_timeline("octi").first.text

これで、上記テキストファイル保存し、次のコマンドを入力して実行してみます。

$ ruby testTwitter.rb
tweet for my test. (テスト中)<←ここに"octi"の最新のツイート>

出来ました!タイムラインを取るのは超簡単ですね!

その他の使い方や、詳しいライブラリリファレンスはこちら(http://rdoc.info/gems/twitter)

上記タイムラインの内容

上記メソッド Twitter.user_timeline で取れるのはつぶやきの配列(Array)なのですが、その1要素の中身を出力してみます。
このような使い方に便利なのはppメソッド。下記のコマンドの出力結果を、最後に記載しておきます。

1
2
3
4
5
require "rubygems"
require "twitter"
require "pp"
 
pp Twitter.user_timeline("octi").first

[AD]

↓Rubyでtwitter botを作る本。OAuth対応らしい。この本を参考にして、時間が空いたときに一つぐらいbotをつくっておきたいと思っています。

誰でもできるTwitter Botの作り方―人気キャラにつぶやかせる

出版社:イーグルパブリシング( 2010-07-23 )

定価:

Amazon価格:¥ 7,800

単行本(ソフトカバー) ( 192 ページ )

ISBN-10 : 486146188X

ISBN-13 : 9784861461880



↓ppメソッドで出力した結果。
Read More »