Rubyで作るtwitterbot入門  〜前編〜


Rubyの導入からtwitterbotの運営までのメモです。
Rubyを使うことで簡単にtwitterbotを作成することが可能です。
1時間あれば運用可能かもしれません。

Rubyの導入

今回のtwitterbotではRuby1.9系ではなくRuby1.8系のActiveScriptRubyを使います。
ダウンロードはここから。
インストールが終わったらrubyconsoleというコンソールへのショートカットがデスクトップにできていると思います。
パスを通してコマンドプロンプトから実行できるようにしても良いですが、折角なのでここはrubyconsoleを使うことにします。
あとtwitterbotで使用するtwitterライブラリのrubytterをインストールします。
rubyconsole(Administrator)上で

gem install rubytter

を実行してください。

bot本体の作成

今回のtwitterbotは

  • 一定の時間ごとにpostする
  • 特定の人からのDMがあればその内容をpostする

というシンプル(悪く言えば適当)なものにします。
ソースコード

#main.rb

require 'rubygems'
require 'rubytter'

TWITTER_ID = "your_id"   #dummy id
TWITTER_PWD ="your_pwd"  #dummy pwd

client = Rubytter.new(TWITTER_ID,TWITTER_PWD)

#テキストファイルの中からランダムにpostする
lines = File.readlines('speak.txt')
	seed=lines.length
	r=rand(seed)
	message = lines[r]
  client.update(message.chomp)

#特定の人からのDMをそのままpostする
editors = [ "editors_id" ]    #dummy id

dm = client.direct_messages

from_editors = dm.select do | msg |
  editors.include? msg.sender_screen_name
end

from_editors.each do | msg |
  client.update(msg.text)
  client.remove_direct_message(msg.id)
end

短い!
テキストファイルの中からランダムにpostする機能はspeak.txtというテキストファイルから一行づつ内容を読み込んでpostします。
つまりこのspeak.txtは

hoge
piyo
foo

のように一行づつ内容を区切って記述します。あとtwitter文字コードUTF-8なのでUTF-8でテキストファイルを保存します。
main.rbとspeak.txtは同じフォルダに保存しておきます。


さて早速実行してみましょう!
rubyconsoleを開いてソースとテキストファイルが保存してあるフォルダまで移動してから

ruby main.rb

で実行します。
上手くtwitter上でpostできていれば成功です!
しかしこれだけでは一回だけpostするだけで定期的にpostはできません。
後編では定期的にpostする方法を述べます。