概要
SkPy を使用して、Python から簡単に Skype へ投稿できます。
投稿のみにしか利用していないので、メッセージの送信のみまとめます。
Microsoft のオフィシャルなライブラリではないので、信頼性を求める場合は Microsoft Bot Framework の使用を検討すると良いかもしれません。
インストール
pip install skpy
※ Anaconda を使用の場合は、仮想環境を使用して環境構築後、最後に pip install が良いようです。
詳しくは、以下、参照してください。
ログイン
from skpy import Skype
sk = Skype(user, pwd) # user: Skype username, pwd: Skype account password
chat.id 取得
メッセージの送信時に、使用する id を取得します。
for chat in sk.chats.recent():
print(chat)
SkPy ドキュメント「Iterating chats」に実行結果があるので参照してください。
メッセージ送信
channel = sk.chats.chat('19:*****.skype') # 取得した id を指定
channel.sendMsg("Test")
ID で指定したグループチャットに 「Test」が表示されます。
補足
- 24時間 でセッションが切れるようです
24時間で、token が無効になるようなので、毎日同じ時刻に再接続しています。
試していませんが、Skype() の3番目の引数で path を指定するとセッション情報が保持されるようです。
token が無効になると再接続という動作になるようです。
詳しくは、「Rate limits and sessions 」を参照してください。
- 旧 Skype ID でのログイン失敗
昔から Skype で使用しているアカウントでログインができなくなったことがあります。
Microsoft の仕様変更が原因だったようで「skpy GitHub Issue」を参考に試行錯誤しました。
旧Skype ID でサインインして、アカウントエイリアス(***@outlook.jp)を追加することで、ログインできるようになりました。
(他にもいくつか変更していますが、最終的に解決したときに変更したものがこれです。)
ログインできないときは、SkPy Guides 「Logging in」も参照してみてください。