rubyでskypebot作れる

Ruby4Skypeを使う

require "rubygems"
require "skype"

puts "start"
app_name = "test_app"
Skype.init app_name
Skype.start_messageloop
Skype.attach_wait

s = Skype::Application.new(app_name)

s.invoke("MESSAGE shokaishokai hello") # 相手を指定してメッセージ


p chats = s.invoke("SEARCH ACTIVECHATS")
chats = chats.split(/ /)
chats.shift
p chats
s.invoke("CHATMESSAGE #{chats.first} test") # グループチャットを指定してメッセージ送る

なんかよくわからなかったのでApplication#invokeで直接API呼ぶようにした

windowsだと http://rubyist.g.hatena.ne.jp/yuiseki/20081213/1229191235 をする

DLLやらモジュールやらをそろえる
http://www.dll-files.com/dllindex/dll-files.shtml?vsinit をダウンロードして C:\ruby\bin にいれる
http://jarp.does.notwork.org/win32/openssl-0.9.8d-2-mswin32.zip をダウンロードして C:\ruby\bin にいれる
http://jarp.does.notwork.org/win32/zlib-1.1.4-1-mswin32.zip をダウンロードして C:\ruby\bin にいれる
ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ext/vrswin-060205-i386-mswin32-1.8.zip をダウンロードして C:\ruby\lib\ruby\site_ruby\1.8\i386-msvcrt\ に swin.so を置く


linuxはgemの中のskype/os/linux.rbを修正。initialize methodのsuperにapp_nameを渡すようにすると動く。

64bitのmacだとosx/cocoaが無いと言われるので、rb-skypemacを使うと良い。