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が返ってきた。ちゃんとドキュメントに載ってるのに。