かなり今更ではありますが、 Skype4py で skype bot を作る機会があったので、簡単な例としておみくじ bot を作成する手順を紹介します。
【環境】 Windows7 + VirtualBox 5.0.16 + Ubuntu 16.04 + Python 2.7.11
【 bot の仕様】 bot アカウントに「おみくじ」と打つと、おみくじの結果を返す。
それでは実際に作成してみましょう。
1.Ubuntu に Skype4py をインストール
$ sudo easy_install Skype4Py
easy_install が入ってない場合は、先に easy_install をインストールしましょう。 easy_install は setuptools に含まれています。
$ sudo apt install python-setuptools
2.Ubuntu に Skype をインストール
Skype は Canonical Partner リポジトリに含まれています。 このリポジトリはデフォルトでは無効になっているので、まずはこれを有効にします。
ソフトウェアの更新 > 設定 > 他のソフトウェア > 「Canonical パートナー」にチェック
これで Skype が apt-get でインストールできるようになります。
$ sudo apt-get install skype
インストールが済んだら Skype を起動します。
$ skype
利用規約が表示されたら同意して、bot にしたいアカウントでログインしてください。 bot 用のアカウントがない場合は作成してください。
3.おみくじ用のプログラムを実装
適当なディレクトリで omikuji.py を作成して保存します。
$ vi omikuji.py
# encoding: utf-8 import Skype4Py import time import random class Omikuji: def __init__(self): self.list = [ {'result': '大吉', 'color': '赤'}, {'result': '中吉', 'color': '緑'}, {'result': '小吉', 'color': '青'}, {'result': '吉', 'color': 'オレンジ'}, {'result': '凶', 'color': '金'}, {'result': '大凶', 'color': '紫'} ] def Execute(self): rets = random.sample(self.list, 1) return self.__MakeResult(rets[0]) def __MakeResult(self, ret): return '今日の運勢は%sです!ラッキーカラーは%sです!' % (ret['result'], ret['color']) def handler(msg, event): if event == u"RECEIVED": if msg.Body == u"おみくじ": msg.Chat.SendMessage(o.Execute()) def Main(): skype = Skype4Py.Skype() skype.OnMessageStatus = handler skype.Attach() while True: time.sleep(1) if __name__ == "__main__": o = Omikuji() Main()
保存したら、omikuji.py を実行します。
$ python omikuji.py
実行時に「ImportError: No module named ○○○」というエラーが出た場合は、エラーメッセージで言われている足りないモジュールをインストールしてください。
無事 omikuji.py が起動すると、初回は Skype API の認証要求が表示されますので、許可してください。
これで準備完了です。 早速おみくじを引いてみましょう。
4.おみくじを引く
ホストOS(windows7)の方から、bot とは違うアカウントで Skype にログインします。 bot アカウント(UPFT)に対して「おみくじ」と打ちます。
おみくじの結果が返ってきます。
まとめ
特に問題がなければ、10分もあれば bot 化することができます。 便利ツールを仕込むもよし、ちょっとしたジョークを仕込むもよし、python をこれから始めるという方など、勉強がてらに色々と遊んでみるのも良いかと思います。 (私もこれで初めて python を書きました)