この記事で分かること
- Pythonプログラムでskypeメッセージ取得する方法が分かる
- Pythonプログラムでskypeグループ作成する方法が分かる
- Pythonプログラムでskypeメッセージ送信する方法が分かる
Pythonでskypeを操作する概要
Skypeは業務や開発現場でコミュニケーションツールとして使用で有名です。この記事では、Pythonのskypeライブラリの使い方を知ることによって、メッセージの取得、送信など基本的なskypeの操作方法のプログラミングを学ぶことができます。
Pythonでskypeを操作する前提環境
skypeを操作する前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。
レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。
もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。
Pythonでskypeを操作するサンプルプログラム
ここでは、skypeを操作するサンプルプログラムを書き、説明します。Skypeを操作する為には大きく「skypeメッセージ取得」、「skypeグループ作成」「skypeメッセージ送信」の3つの操作が必要になります。これらを考慮して、今回のサンプルプログラムは次の順番で処理を説明します。
- ライブラリのインポート
- skypeメッセージを取得する関数の定義
- skypeグループを作成する関数の定義
- skypeメッセージを送信する関数の定義
- 定義した関数の呼び出し
1.ライブラリのインポート
初めに、各種ライブラリをインポートします。ここでは、skypeの扱いに必要なライブラリ「skpy」をインポートしています。
from skpy import Skype
ライブラリ「skpy」からモジュール「Skype」をインポートする。
2.skypeメッセージを取得する関数の定義
次に、skypeメッセージを取得する関数を定義し、メッセージを取得する方法を説明します。skypeのインスタンス「sk」を作成し、skypeインスタンス「sk」に対して、関数「contacts」を呼び出し、コンタクトのチャットを特定します。
関数「contacts」の呼び出しの際、コンタクトIDを入力することで、どのユーザーとのチャットかを特定することができるようになっており、コンタクトIDに応じたチャットインスタンスを取得することができます。取得したチャットインスタンスの変数「ch」に対して、関数「getMsgs」を呼び出すことによって、該当のチャットのメッセージを取得することができます。
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())
- 関数「get_msg」を定義宣言する。
- 変数「sk」をスカイプオブジェクトで初期化する。
- 変数「ch」をスカイプのコンタクトオブジェクトで初期化する。
- 関数「ch.getMsgs」から返却された戻り値の内容を表示する。
3.skypeグループを作成する関数の定義
次に、skypeグループを作成する関数を定義し、グループを作成する方法を説明します。グループとは、複数数人数でチャットするskypeチャットグループのことです。グループを作ることで、一対一ではなく、複数に人数でのチャットや会話を実施することが可能になります。グループを作成する手順としては、まずSkypeのインスタンス「sk」を作成し、Skypeインスタンス「sk」に対して、関数「chats.create」を呼び出すことでグループを作成できます。
なお、関数「chats.create」の引数にはグループとなるSkypeメンバのIDを入力します。下のサンプルプログラムの例では、便宜上2名のユーザーを「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"])
- 関数「create_new_group」を定義宣言する。
- 変数「sk」をスカイプオブジェクトで初期化する。
- 変数「ch」を関数「sk.chats.create」から返却されるスカイプグループオブジェクトで初期化する。
4.skypeメッセージを送信する関数の定義
次は、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
5.定義した関数の呼び出し
最後に、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)
- メールアドレス「resistered_mail_address」とパスワード「passwd」を引数に関数「post_msg」を呼び出す。
- メールアドレス「resistered_mail_address」とパスワード「passwd」を引数に関数「get_msg」を呼び出す。
- メールアドレス「resistered_mail_address」とパスワード「passwd」を引数に関数「create_new_group」を呼び出す。
Pythonで業務効率化するその他の方法
この記事では、Pythonを使ってskypeの自動応答や自動チャット送信ができる操作方法を説明しました。この他にも、Pythonには、業務効率化できる手段がたくさんあります。
下記の記事に、普段オフィス環境で使われるツールを使って業務効率化できる方法をまとめていますので、ぜひ合わせて読んで取り組んでみてください。