CentOS6.4にSkypeを入れてbotでお話させる
ちなみにCentOS minimalで動かそうとすると面倒
デプロイシェルとかに仕込めば楽しいねって話
まずはライブラリ
sudo yum install -y glibc.i686 nss-softokn-freebl.i686 alsa-lib.i686 libXv.i686 libXScrnSaver.i686 libtiff.i686 glib2.i 686 libSM.i686 libXrender.i686 fontconfig.i686 pulseaudio-libs.i686 alsa-plugins-pulseaudio.i686
でSkype本体をDL解凍
cd /tmp/ curl -L -O http://download.skype.com/linux/skype_static-4.0.0.8.tar.bz2 cd /opt/ sudo tar xjvf /tmp/skype_static-4.0.0.8.tar.bz2
便利なようにシンボリックリンクを各種に貼る
sudo ln -s /opt/skype /usr/share/skype sudo ln -s /usr/lib/libtiff.so.3 /usr/lib/libtiff.so.4 sudo ln -s /opt/skype/skype /usr/bin/skype
ちなみに2つ目のやつは32bit版ライブラリを64bitだとごまかして動かすアレな
で、必要なディレクトリを作る
sudo mkdir /var/db/skype /var/run/skype /var/log/skype sudo chown /var/db/skype /var/run/skype /var/log/skype
で、Skypeを動かすためのユーザを一応作っておく
sudo useradd skype
各種ディレクトリの所有権をこいつに
sudo chown skype:skype /var/db/skype /var/run/skype /var/log/skype
あとで使うものも今入れときます
sudo yum install -y sudo xorg-x11-xauth xorg-x11-server-Xvfb
これらは仮想フレームバッファってやつですね。
curl -L -O https://raw.github.com/gist/557242/9c5b74769969efcf4e982949c0470561ed6c096c/launch-skype.sh
で編集
vi launch-skype,sh
ユーザーネームとパスワードを自分のbot用に変更
USERNAME=echo123 PASSWORD=blah
DBPATHの部分を変更
DBPATH=/srv/skype/conf ↓ DBPATH=/var/db/skype
でviを保存終了
実行権限つけて
chmod +x launch-skype.sh
ここまでやったらとりあえず起動するはず
sudo ./launch-skype.sh start
生きてるかを見るには
user[~]$ ps wwwaux | grep skype skype 11704 1.1 0.5 52680 5424 pts/1 S 22:12 0:00 Xvfb :20 -screen 0 800x600x8 -nolisten tcp skype 11710 33.7 8.4 175228 85732 pts/1 Sl 22:12 0:04 /opt/skype/skype --dbpath=/var/db/skype --pipelogin
ただこのままではCUI環境なのでどうしようもありません。
特にbotが話すには外部プログラムがSkypeAPIを使うかのダイアログが出るためにGUI操作が必須です。
そのためにさっきいれた仮想フレームバッファが必要です、
ちなみにgrepで見た
skype 11704 1.1 0.5 52680 5424 pts/1 S 22:12 0:00 Xvfb :20 -screen 0 800x600x8 -nolisten tcp
が仮想フレームバッファというやつ。
これを表示させるためにVNCサーバーを立てて、クライアントPCから接続します。
Windowsから今回は接続するので、クライアントPC側には適当なVNCソフトウェア(今回はUltraVNC)を入れます
UltraVNCを適当に入れて、ViewからサーバーのIP入れて接続します。
その前にサーバーにVNCサーバーを入れましょう
今回はx11VNCです。
標準のyum Repositoryには入っていないので追加でepelを入れます
yum install -y --nogpgcheck http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
環境に合わせたものにしましょうね↑
で、必要なものをインストール。VNCサーバーとレンダリング用のフォント
sudo yum install -y x11vnc ipa-gothic-fonts
操作に便利なものを入れる
sudo yum install -y fluxbox
Skypeをインストールしてる状態で
x11vnc -display :20
とやってクライアントPCからVNCで鯖につなげると
おはようSkype
で、あとは
Skypeをプログラムからお話させるコードをちょこっと
で俗に言うd-busを起動させる
sudo service messagebus start
sudo easy_install Skype4Py
Skypeでお話させるコードを作成
vi test.py
import Skype4Py skype = Skype4Py.Skype(Transport='x11') skype.Attach() chat = skype.CreateChatWith("話しかける相手") chat.SendMessage(u"テストだよ")
これで保存して
環境変数にちょっと入れる必要があればzshとかに書いても良い
export DISPLAY=:20
で実行
python test.py
クライアントからVNCで見て許可します。ちなみにここで
Remember this selectionにチェックを入れておかないと、毎回チェック必要なので悲しみ。
はい、来ました
次回からはx11vncとか入らないので、Skype起動して適当にpythonスクリプト動かせばおk
あとは指定したグループチャットに発言させたり、常駐して何かのワードに反応させたりと夢が広がりますね