かなり今更ではありますが、 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 を書きました)