- 対象は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による外部連携