- 対象はUbuntu 12.04 LTS
- python, distriute, pip, virtualenv, virtualenvwrapperがインストールされてる前提
- http://d.hatena.ne.jp/moriyoshi/20100926/1285517353
- http://d.hatena.ne.jp/nullpobug/20100330/1269878334
- http://d.hatena.ne.jp/do_aki/20120615/1339725359
必須ではないが、fluxboxはUIを使いやすくするために入れておく。
sudo aptitude install xvfb sudo aptitude install x11vnc sudo aptitude install fluxbox
それぞれ起動する
Xvfb :0 -screen 0 800x600x8 x11vnc -display :0 fluxbox
依存パッケージのインストール
sudo aptitude install lib32stdc++6 lib32asound2 ia32-libs libc6-i386 lib32gcc1 fontconfig-config libqt4-gui ttf-vlgothic
本家からパッケージをダウンロードしてインストール
curl -O http://download.skype.com/linux/skype-ubuntu-precise_4.2.0.11-1_i386.deb sudo dpkg -i skype-ubuntu-precise_4.2.0.11-1_i386.deb
DISPLAYを指定して起動
env DISPLAY=:0 skype
VNCクライアントで5900番ポートに接続して、skypeでログインしておく
python-dbusとpython-gobjectを、pipではインストール出来ないのでaptでインストール
sudo aptitude install python-dbus python-gobject
systemのパッケージを触れるvirtualenv環境を作成して、Skype4Pyをインストール
mkvirtualenv skype --system-site-packages pip install Skype4Py
moriyoshiさんのサンプルスクリプトを起動してみる
# encoding: utf-8 import Skype4Py import time def handler(msg, event): if event == u"RECEIVED": if msg.Body == u"やっぱり": msg.Chat.SendMessage(u"猫が好き") def main(): skype = Skype4Py.Skype() skype.OnMessageStatus = handler skype.Attach() # イベントハンドラは別スレッドにて実行されるので、 # 本スレッドではひたすらsleepしてスクリプトが終了しないようにしておく。 while True: time.sleep(1) if __name__ == "__main__": main()
環境変数DISPLAYを指定して起動
env DISPLAY=:0 python testbot.py
起動すると、Skypeで認証欲求のダイアログが出るので、Skype4Pyを許可するとbotが動く
ドキュメントを参照してください
URL: | http://tokibito.bitbucket.org/django-skypehub/tutorial.html |
---|
runskypebotコマンドの実行時に、環境変数DISPLAYにXvfbに指定したdisplay番号を設定する必要があります。
以下の順で再起動が必要
- xvfb
- x11vnc
- fluxbox
- skype
- django-skypehub
ここで指定したdisplay番号をx11vnc, skype, django-skypehubに渡す必要があります。 skype, django-skypehubにはDISPLAY環境変数に入れて渡してください。
Xvfb :0 -screen 0 800x600x8
x11vnc -display :0
fluxbox
env DISPLAY=:0 skype
skypeを起動したら、VNCクライアントでskypeのログインしてください。 aitaは VNC Viewer を使っています。
VNC Viewer: | http://www.realvnc.com/download/viewer/ |
---|
x11vncに指定してなければ、ポートはデフォルトの5900です。
. virtualenvwrapper.sh workon skype env DISPLAY=:0 python manage.py runskypebot
起動後、botが実行されない場合は、 VNCクライアントで、Skype4PyがSkypeのクライアントに認証されているか確認してください。
- supervisordによるプロセス監視
- httpによる外部連携