python

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

how to control skype by python
プログラム学生
プログラム学生

SkypeのBOTってどうやって作るんですか?

そのためには、まずSkypeの基本的な操作方法を知る必要があるね。
今回は、pythonでSkypeをどのように操作するかを紹介するね。

Tommy
Tommy

pythonでskypeを操作する概要

summary of controlling skype

Skypeは業務や開発現場でコミュニケーションツールとして使用されているので有名です。

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

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

environment of controlling skype

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

【python】バージョン確認の方法【→プログラミング初心者向け】

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

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

レンタルサーバでプログラミングする方法【→レンタルサーバでできる!】

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

sample program of controlling skype

ここでは、

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

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

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

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

from skpy import 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())

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"])

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)

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

other way of business efficiency by python

pythonには、業務効率化できる手段がたくさんあります。 せっかくpythonプログラムの学習のですから、実務に生かせないと学習している効果も実感することができません。

プログラマーにとって、

  • 「人の役に立った時」
  • 「人に喜んでもらった時」

にそこ、プログラムをやっていてよかったと喜びを感じられるものです。

また、プログラムの効果を発揮できる身近な場所は「普段の業務」です。つまり、学習したプログラムで効率化できる可能性の一番の高い場所です。 そういう意味で、「普段の業務」を効率化しないと、もったいないです。

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

【python】業務効率化の方法8選【→周りを出し抜く自動化】

-python
-, ,

Copyright© Tommy's blog , 2020 All Rights Reserved Powered by AFFINGER5.