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する方法を述べます。