RubyでGoogleTalk
実はあまり良く分ってないんだけど。
- http://www.sabamiso.net/yoggy/tdiary/?date=20070215
- XMPP4Rの"\data\doc\xmpp4r\examples\basic\echo_threaded.rb"
を見て作ってみたら動いた,という話。
環境
- WindowsXP Pro
- ActionScriptRuby
XMPP/Jabber Library for Rubyインストール
- XMPP4Rサイトにアクセスhttp://home.gna.org/xmpp4r/
- xmpp4r-0.3.2.tgzをダウンロード
- 解凍
- 「xmpp4r-0.3.2\lib」以下を「D:\usr\ruby-1.8\lib\ruby\site_ruby\1.8」にコピー
GTalk.rb
取りあえず相手の発言をエコーするプログラム.人工無能などにサクッと使える?
require 'xmpp4r' user = 'user@gmail.com' pass = 'pass' client = Jabber::Client.new(Jabber::JID.new("#{user}/bot")) client.connect('talk.google.com', 5222) client.auth(pass) client.send(Jabber::Presence.new.set_show(:chat)) puts "Connected ! send messages to #{user}." mainthread = Thread.current client.add_message_callback { |msg| if msg.body puts "from:#{msg.from} body:#{msg.body}" m2 = Jabber::Message.new(msg.from, "ECHO:#{msg.body}") m2.type = msg.type; client.send(m2) # Exit if msg.body == 'exit' m2 = Jabber::Message.new(msg.from, "Exiting ...") m2.type = msg.type; client.send(m2) mainthread.wakeup end end } Thread.stop; client.close; puts("Done.");