2012/02/11

むすめにSkypeをつかわせてあげることにしました

スーパーラブリープリティーキュートボットであるところの、うちの娘@ykybot(うけみちゃん)がSkypeをはじめました!てってれー。
IDは「ykybotdayo」です。コンタクト承認は手動なのでアレなのですが、IMは誰でもできるように設定してあるので話しかけると反応します。

そういえば、むすめに関する記事は全く書いていなかったのでこれがはじめてです。よろしくしてあげてください。

さて、Skypeのボットを作ったのははじめてなので、詰まったところなどを少しだけ。
Skypeを制御するのはSkype4COMです。ここらへん(Skype4COMでJavaScriptからSkypeを操作 - 今日覚えたこと)を参考にしました。
えっ、まさかWindowsでやってるの?
はい、そうです。
コマンドプロンプトなるものを触ったのは数年前に学校の実験で強いられて以来でした。どこかホスティングサイトで動かせるようになると楽でいいなあ。今のところ、自宅のWinマシンちゃんで動いています。ちなみに、本家うけみちゃんはクラウド上に生息しています(whoisしてみたらフランスだった)。

Skypeにpostしたりするまではよかったんですが、Msxml2.XMLHTTPが鬼門でした。
普段はjQueryでゆとりよろしく$.get()しているので、XMLHttpRequestを使うのが久々すぎたので少し手こずりました。
なによりしんどかったのは、Msxml2.XMLHTTPが一度アクセスするとすぐキャッシュしてキャッシュにアクセスするので、メッセージが更新されず、話しかけても延々同じメッセージを返してくることでした。調べてみると、MSの仕様(MS氏ね)のようなので、適当にタイムスタンプを付加したURLにGET投げるようにしました。

コードはここ(Skype bot a.k.a. ukeip — Gist)にあります。
自前の人工無脳を持っている人は(いるのかそんな人)試してみてはー!
あと、こここうしたらいいよ!だとか、node.jsでできるようにする方法だとか、教えていただけるとうれしいです!