Skypeのグループチャットにメッセージ送信

rb-skypemacのソース読んでたら、

Skype.send_(:command => "コマンド")

で生のSkypeAPIに触れられる事がわかった。apple scriptのインタフェースを使っているらしい。

chat系はrb-skypemacはラッパーが用意されてないけど、send_使えば http://developer.skype.com/accessories にあるPublic API Reference (なぜかzip archive) が一応全部使えそう。


使ってみた。

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'rubygems'
require 'rb-skypemac'
include SkypeMac

p Skype.send_(:command => "MESSAGE echo123 testtest") # 相手を指定してチャット開始、メッセージ送る

p Skype.send_(:command => "SEARCH ACTIVECHATS") # グループチャットのリストを取得

p Skype.send_(:command => "CHATMESSAGE  #shokaishokai/$s.ihara;ebd424c4200d909f 朝だぞーおっきろー起きないとエルボードロップしちゃーうぞ")

チャットIDのリストの返り値は文字列で返ってくるし、参加者と1:1のチャットをしているとそれと混ざるので、適当にメッセージ送ってみて確かめてみないとわからない。

"CHATS #akio0911/$yuiseki;1600dfa22ed008f5 #shokaishokai/$s.ihara;ebd424c4200d909f #shokaishokai/$kbs_xtel;22175d1c7ecf1257 #shokaishokai/$kbs_xtel;22175d1c7ecf1257 #shokaishokai/$charmy0806;b50d11ec562f4a67 #shokaishokai/$sosuke0826;dfc9b84cfd272a47 #ruwon1219/$shokaishokai;3ee8c5077b5ea5b #shokaishokai/$yusukebe;714a0216db1f6139 #ogsdek/$shokaishokai;677f01030aaef6da #atsuoru/$shokaishokai;2cf113ec2ef15467 #shokaishokai/$3a8e0b8d39ae318c #dangkang/$shokaishokai;9ebbee07af0533ee #sosuke0826/$shokaishokai;f263438237a31c55 #shokaishokai/$ta-yan527;924495d3343e8eea #shokaishokai/$ta-yan527;924495d3343e8eea #shokaishokai/$echo123;5d479130f66122bb"


ちなみにAPI Level 5のSEACH ACTIVECHATSはリストが取れるのに、Level 3のSEARCH CHATSはnilが返ってきた。ちゃんとドキュメントに載ってるのに。