Hatena::ブログ(Diary)

Android開発-fs随筆- RSSフィード

2009-11-08

RubyTwitterで動くBOTをつくる(返事をする編)

0,説明

登録されているキーワードに返事をするBOTを作りましょう.

例)

こんにちはこんにちは!ばかやろー!

1,自分へのリプライを取り出す

自分へのリプライは次のコードで取り出せます.

require 'rubygems'
require 'twitter'

User = 'ユーザ名をここに'
Pass = 'パスワードをここに'

t = Twitter::Base.new( Twitter::HTTPAuth.new( User, Pass ) )

reps = t.replies

最後の行でリプライを取り出しています.上の方のコードは前回(http://d.hatena.ne.jp/foursue/20091104/1257349532)を参照してね.

2,リプライからキーワードが入っているものを探す

…上部は省略…
reps = t.replies
keywords = {/こんにちは/ => "こんにちは!",
            /こんばんは/ => "こんばんは!",
            /おはよう/ => "おはようござる!"}
          #{/キーワード/ => "返答用の文章"}

reps.each{|r|
  keywords.each{|p,s|
    t.update( Kconv.toutf8("@#{r.user.screen_name} ".concat(s)) if r.text =~ p
  }
}

keywordsに反応するキーワードと,返答する文章を入れたハッシュを代入しておきます.その後,リプライを一見ずつキーワードがあるか「if r.text =~ p」の部分で比較して,キーワードに含まれていたら,「t.update」を使って返答します.

3,まとめ

今日は簡単だね!おつです.またね!