HEARTBEATS

こんにちは。CTOの馬場です。

今回もインフラエンジニア向けにちょっとした情報を紹介します。

今回は「Skype4Pyを使ってコマンドラインからSkypeを使う」です。
具体的には、ブックマークしたグループチャットに発言するプログラムを紹介します。

実際のところ、ちゃちゃっとセットアップしてしまえば、あとはコマンドラインからSkypeを利用できますので、ぜひ試してみてください。

参考: Linux上で動くSkype用のbotを作る方法 - muddy brown thang

困ったら上のURLを見てください。だいたい解決します。

と、投げっぱなしもなんなので、ざっくり手順を説明します。

  1. Skype4Pyをインストール
  2. スクリプトを作成
  3. 実行

という3ステップです。

※MacOSX 10.6でテストしています

SKype4Pyをインストール

コマンドラインから実行するだけ!簡単です。

sudo easy_install Skype4Py

スクリプトを作成

今回はPushMessage2BookmarkedChat.pyという名前でファイルを作成しました。

# coding: utf-8

import sys
import Skype4Py

def selectChatFromBookmark(skype,topic):
    for bookmarkedChat in skype.BookmarkedChats:
        if bookmarkedChat.Topic == topic:
            return bookmarkedChat

def main():
    skype = Skype4Py.Skype()
    skype.Attach()
    topic = unicode(sys.argv[1],'utf-8')
    message = unicode(sys.argv[2],'utf-8')
    chat = selectChatFromBookmark(skype,topic)
    chat.SendMessage(message)

if __name__ == '__main__':
    main()

実行

実行する前の注意事項

  • Skypeを起動しておくこと
  • 発言したいチャットをブックマークに登録しておくこと
  • スクリプトの初回起動時のみ認証画面がでるので、「次回以降も〜」を選ぶこと

実行方法は以下の通り。

$ python PushMessage2BookmarkedChat.py "テス子の部屋" "こんにちはこんにちは!!"

ちなみに、MacOSXで実行する場合には、以下のように32bitモードで実行するための環境変数を設定する必要があります。

$ VERSIONER_PYTHON_PREFER_32_BIT=yes ¥  
 python PushMessage2BookmarkedChat.py "テス子の部屋" "こんにちはこんにちは!!"

コレを指定しないとSegmentation faultでプログラムが落ちますのでご注意。
どうもSkype4Pyの問題のようです。

私の環境では環境変数指定で対応できていますが、回避できない場合は下記URLを参考にがんばってみてください ;)

参考: Macports で入れた Python で Skype4Py を使う - SPEAKER BREAKA

株式会社ハートビーツの技術情報やイベント情報などをお届けする公式ブログです。