python

【python】skypeを操作する方法【→業務効率UP】

8月 9, 2019

how to control skype by python
プログラム学生
SkypeのBOTってどうやって作るんですか?
そのためには、まずSkypeの基本的な操作方法を知る必要があるね。今回は、pythonでSkypeをどのように操作するかを紹介するね。
Tommy

この記事で分かること

  • pythonプログラムでskypeメッセージ取得する方法が分かる
  • pythonプログラムでskypeグループ作成する方法が分かる
  • pythonプログラムでskypeメッセージ送信する方法が分かる

pythonでskypeを操作する概要

summary of controlling skype

Skypeは業務や開発現場でコミュニケーションツールとして使用で有名です。この記事では、pythonのskypeライブラリの使い方を説明して、メッセージの取得、送信など基本的なskypeの操作方法のプログラミングを学ぶことができます。

pythonでskypeを操作する前提の環境

environment of controlling skype

skypeを操作する前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

オススメ
how to check version in python
【python】バージョン確認の方法【→プログラミング初心者向け】

続きを見る

レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

オススメ
how to programming on rental server
レンタルサーバでプログラミングする方法【→ブログのサーバでできる!】

続きを見る

pythonでskypeを操作するサンプルプログラム

sample program of controlling skype

ここでは、下記の3つの関数を定義し、それらを実行することによってskypeを操作するサンプルプログラムを説明します。

  • 「skypeメッセージ取得」
  • 「skypeグループ作成」
  • 「skypeメッセージ送信」

ライブラリをインポートする

初めに、各種ライブラリをインポートします。skypeの扱いに必要なskpyライブラリをインポートしています。

from skpy import Skype

ライブラリ「skpy」からモジュール「Skype」をインポートする。

skypeメッセージを取得する

次に、skypeメッセージを取得する関数を定義し、メッセージを取得する方法を説明します。Skypeのインスタンス「sk」を作成し、「sk」に対して、関数「contacts」を呼び出し、コンタクトのチャットを特定します。

コンタクトIDを入力することでどのユーザーとのチャットかを特定します。チャットインスタンス「ch」に対して、関数「getMsgs」を呼び出すことによって、skypeメッセージを取得することができます。

def get_msg(mail_address,passwd):

    # connect to Skype
    sk = Skype(mail_address, passwd)
    
    # 1-to-1 conversation
    ch = sk.contacts["live:********"].chat
    
    # retrieve recent messages
    print(ch.getMsgs())

  1. 関数「get_msg」を定義宣言する。
  2. 変数「sk」をスカイプオブジェクトで初期化する。
  3. 変数「ch」をスカイプのコンタクトオブジェクトで初期化する。
  4. 関数「ch.getMsgs」から返却された戻り値の内容を表示する。

skypeグループを作成する

次に、skypeグループを作成する関数を定義し、グループを作成する方法を説明します。まず、Skypeのインスタンス「sk」を作成し、「sk」に対して、関数「chats.create」を呼び出すことでグループを作成できます。

なお、関数「chats.create」の引数にはグループとなるSkypeメンバのIDを入力します。現在はUser1、User2と記載しています。

def create_new_group(mail_address,passwd):

    # connect to Skype
    sk = Skype(mail_address, passwd)

    # new group conversation
    ch = sk.chats.create(["User1", "User2"])

  1. 関数「create_new_group」を定義宣言する。
  2. 変数「sk」をスカイプオブジェクトで初期化する。
  3. 変数「ch」を関数「sk.chats.create」から返却されるスカイプグループオブジェクトで初期化する。

skypeメッセージを送信する

次は、skypeメッセージを送信する関数を定義し、メッセージを送信する方法を説明します。まず、Skypeのインスタンスを作成し、コンタクトを特定します。「****」で記載している箇所には実際のコンタクトのIDを入力してください。その後、メッセージの本文を作成します。メッセージの本文は変数「content」に格納されています。最後に、上記で作成したSkypeインスタンスの変数「ch」に対して関数「sendMsg」を呼び出せばskypeメッセージの送信が可能になります。

なお、現在はコメントアウトしていますが、skypeメッセージでファイルを送信(アップロード)する方法も記載しています。

def post_msg(mail_address,passwd):
    
    # connect to Skype
    sk = Skype(mail_address, passwd)

    # 1-to-1 conversation
    ch = sk.contacts["live:********"].chat

    # plain-text message
    content = "This is test!!"
    ch.sendMsg(content)

    # file upload
    #ch.sendFile(open("test.xlsx", "rb"), "test2.xlsx")
    #contact sharing
    #ch.sendContact(sk.contacts["live:********"])
    #retrieve recent messages

skypeを操作する(定義した関数の呼び出し)

最後に、skypeユーザーの名とパスワードを入力することで、上記で定義した3つの関数の呼び出しを行います。

if __name__ == '__main__':
  post_msg(mail_address=resistered_mail_address,passwd=passwd)
  get_msg(mail_address=resistered_mail_address,passwd=passwd)
  create_new_group(mail_address=resistered_mail_address,passwd=passwd)

  1. メールアドレス「resistered_mail_address」とパスワード「passwd」を引数に関数「post_msg」を呼び出す。
  2. メールアドレス「resistered_mail_address」とパスワード「passwd」を引数に関数「get_msg」を呼び出す。
  3. メールアドレス「resistered_mail_address」とパスワード「passwd」を引数に関数「create_new_group」を呼び出す。

pythonで業務効率化するその他の方法

other way of business efficiency by python

この記事では、pythonを使ってskypeの自動応答や自動チャット送信ができる操作方法を説明しました。

この他にも、pythonには、業務効率化できる手段がたくさんあります。

下記の記事に、普段オフィス環境で使われるツールを使って業務効率化できる方法をまとめていますので、ぜひ合わせて読んで取り組んでみてください。

オススメ
8 ways for business efficiency by python
【python】業務効率化の方法8選【→周りを出し抜く自動化】

続きを見る

-python
-

© 2021 Tommy's blog Powered by AFFINGER5