こんにちは、ディレクターの Jack です。
最近 Python(パイソン)にはまっています。
さて、本日はタイトルのとおり Python で ChatWork の API を叩いてみる内容を書いていきます。
弊社ではコミュケーションツールに ChatWork を利用しており、タスクの確認や日々の会話も ChatWork を利用しています。「あの作業どうなってました?」とか「このファイルを xx 時までに更新してください!」とか「経費申請を行ってください!」など、さまざまな確認業務を ChatWork で行っています。
今回は、Python を利用して ChatWork の API を叩き、定期的なメッセージを送信するスクリプトを書いていきたいと思います。
以前、Python で顔画像の特徴点抽出も行ったり、Google Apps Script と ChatWork API を利用して Bot の開発を行ったりもしています。
興味のある方は下記記事もあわせてお読みください。 【ディレクターでもプログラミングを学ぼう】Pythonで顔画像の特徴点検出をしてみよう 【ディレクターもプログラミングを学ぼう】Google Apps ScriptでBotを作ってみよう!
事前準備
利用するエンドポイントを確認する
エンドポイントのベース URL は下記となります。
https://api.chatwork.com/v2
API ドキュメントにも記載されていますが、ChatWork の API を叩くときは必ず https で接続する必要があります。http での接続だとエラーになるので気をつけましょう。
API Token の取得方法は、下記記事にも記載しています。 【ディレクターもプログラミングを学ぼう】Google Apps ScriptでBotを作ってみよう!
ChatWork 社が提供している API ドキュメントにすべて記載されているので、カンタンに取得することができます。分かりやすくてとても素敵ですね。
>> http://liginc.co.jp/wp-content/uploads/2015/10/index.html
必要なモジュールをインストールする
今回は requests モジュールを利用しています。
pip コマンドでカンタンにインストールできます。
$ pip install requests
Python 開発環境に Anaconda を利用している場合は、conda コマンドでインストール可能です。
$ conda install requests
実装してみる
ソースコードを下記に記載します。すべてのリクエストには必ず API Token を含める必要があります。
API Token は HTTP リクエストヘッダに X-ChatWorkToken というキーでセットする必要がありますので注意しましょう。import requests api_token = 'Your API token' base_url = 'https://api.chatwork.com/v2' room_id = 'xxxxxxxx(任意のroom_idを指定)' message = '【本日18時まで!】経費申請をしてください!(任意のテキストを指定)' post_message_url = '{}/rooms/{}/messages'.format(base_url, room_id) headers = { 'X-ChatWorkToken': api_token } params = { 'body': message } response = requests.post(post_message_url, headers=headers, params=params) print(response)
早速、実行してみましょう。
今回開発した Python スクリプトを send_message.py というファイルを名で保存してください。
下記コマンドで実行し、HTTP ステータスコードが 200 で返却されたら成功です。$ python send_message.py <Response [200]
cron で定期的に実行させる
cron で毎週月曜日の午前 10:00 にメッセージを送信するには、crontab に下記内容を追加してください。
00 10 * * 1 python send_message.py
crontab の書式については、下記サイトが参考になります。
>> https://ja.wikipedia.org/wiki/Crontab
>> https://math-linux.com/linux/tip-of-the-day/article/crontab-scheduling-tasksおわりに
今回は、ChatWork の API を叩く Python スクリプトの開発を行いました。個人的に、Python は書いていて楽しいですね。次は、Python と ChatWork API を利用してテキスト解析などもやってみようと思います。
それでは、良いプログラミングライフを!
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。