SkypeAPIをRubyから利用する「Ruby4Skype」

「Ruby4SkypeがGemでインストールできるようになったよ。」

と作者のbopperさんから連絡をもらったので、早速使ってみた。

Ruby4SkypeはRubyからSkypeAPIを簡単に利用できるようにしたラッパーである。ちなみにbopperさんはSkype社が主催したマッシュアップコンテストでアジア最優秀賞をとったTwitter4Skypeの作者だ。しかも若くてイケメン。許せんw
しかしこのイケメンは、サーバーの利用料金払い忘れて、Twitter4Skypeの公開サイトを飛ばしてしまったらしいw


さ、さてインストール方法は

gem install Ruby4Skype


でOK。swin.soが別途必要なので入っていない場合はインストールを。

こちらにリファレンスがあるけれども・・・リファレンスはまだ未完成。なので、プログラムを組むときにちょっとした深みにはまる可能性大・・・戻り値の型がわからないとか。゜゜(>ヘ<)゜ ゜。ビエェーン

bopperさんに協力してもらって、サンプルを作ってみたので、興味のある人は参考にしてみてください。

Skypeチャットメッセージのロギングシステム

require 'skypeapi'
require 'nkf'


SkypeAPI.init
SkypeAPI.attachWait


def Chatlog(chatmessage)
 opt = "-s -xm0"
 strtime = chatmessage.getTimestamp.strftime(”%Y/%m/%d %H:%M:%S”)
 chatname = chatmessage.getChat.getName
 msg = chatmessage.getBody
 user = chatmessage.getFrom


 stbuf = strtime + ":" + chatname + ":" + user.getFullname + ":" + msg
 stbuf = NKF.nkf(opt,stbuf)


 open("c:\\chatlog.txt","a+") do |file|
  file.puts stbuf
 end
end


SkypeAPI::ChatMessage.setNotify :Status, 'RECEIVED' do |chatmessage|
 Chatlog(chatmessage)
end


SkypeAPI::ChatMessage.setNotify :Status, 'SENT' do |chatmessage|
 Chatlog(chatmessage)
end


loop do
 SkypeAPI.polling
 sleep 0.123
end

こんな感じでログがでるはず。

2008/02/07 13:58:39:#○○/$○○;b29e1136f1e18cd9:のどぐろ:ロギングしすてむ作ってみた。
2008/02/07 13:59:07:#○○/$○○;b29e1136f1e18cd9:のどぐろ:こんなの作れるよーとサンプルつきでブログにあげるよ。
2008/02/07 14:01:02:#○○/$○○;b29e1136f1e18cd9:bo:よろしくお願いします。自前のBlogは消えてしまいましたし。
#支払い忘れてたんですよwww
2008/02/07 14:03:09:#○○/$○○;b29e1136f1e18cd9:のどぐろ:かっこわるい>bo

○○にはSkypeIDが入ります。