2009年4月8日水曜日

rubyとtwitter

 さる人からtwitterやろう的なことをいわれて始めた(wataminで登録してます。)のですが、わざわざtwitterのサイトに行くのも面倒なのでなんか作業とかしてる合間にtwitterをすぐ投稿できるような仕組みないかなーと思ってちょっと調べてみると、twitterは何かAPIが公開(日本語例ならこことか、本家ならこことか)されてるようです。
ただこれに目を通すのは(AMAZONとかのAPIに比べれば楽かもしれないけど)これもめんどいです。

 なので楽にするためにrubygemsを使います。

調べてみると、Rubyのgemには twitter(ここや日本語ならここが参考になると思います。) と twitter4r(こことか。)があるようです。

どっちを使ってもいけるみたいなんですが適当にtwitter4rとかを選んでみました。

環境は、debian/etch, ruby1.87, gemが使える状態です。

インストールは本家rdocをみればわかるように至って簡単で、

gem install twitter4r

でできます。(jsonのエラーが出たらgem install jsonでjsonインストールすればいいと思います。)

つなぐ方法は以下のようにやるだけでできてしまいます。(例外とかはほとんど考慮してません。)


#!/usr/bin/ruby
require 'rubygems'
require 'twitter'
require 'time'

email = "hoge@hoge.com" #メールアドレスを書く。
pass = "hoge" #パスワードを書く
tw = Twitter::Client.new(:login => email, :password => pass)
unless tw.authenticate?(email, pass)
raise "This user cannnot authenticated.(login as #{email}) \n"
end
if ARGV.size >= 2
printf("投稿するときは引数は1つにしてください。 \n 終了\n")
exit(0)
end
tw.status(:post, ARGV[0])
printf("SendMessage : #{ARGV[0]} \n")
exit(0)


使い方は、普通に
./twitter.rb 送る内容
でできます。

ただ、毎回パスを指定するのはいやなので自分は(zshの場合です。).zshrcに

alias twitter="~/ruby/twitter/tw.rb"

とか適当にaliasをつけて

twitter テスト。

とかでできるようにしました。

twitterにはなんか詰まったときとか(愚痴を?)書こうと思います。

0 件のコメント: