作るのは数字だけじゃない / デジタルハリウッド
作るのは数字だけじゃない / デジタルハリウッド
2017.12.28

【ディレクターでもプログラミングを学ぼう】Python で ChatWork の API を叩いてみた

Jack

こんにちは、ディレクターの Jack です。
最近 Python(パイソン)にはまっています。

さて、本日はタイトルのとおり Python で ChatWork の API を叩いてみる内容を書いていきます。

弊社ではコミュケーションツールに ChatWork を利用しており、タスクの確認や日々の会話も ChatWork を利用しています。「あの作業どうなってました?」とか「このファイルを xx 時までに更新してください!」とか「経費申請を行ってください!」など、さまざまな確認業務を ChatWork で行っています。
今回は、Python を利用して ChatWork の API を叩き、定期的なメッセージを送信するスクリプトを書いていきたいと思います。

以前、Python で顔画像の特徴点抽出も行ったり、Google Apps Script と ChatWork API を利用して Bot の開発を行ったりもしています。

興味のある方は下記記事もあわせてお読みください。

目次

  1. 事前準備
    • 利用するエンドポイントを確認する
    • 必要なモジュールをインストールする
  2. 実装してみる
  3. cron で定期的に実行させる
  4. おわりに

事前準備

利用するエンドポイントを確認する

エンドポイントのベース URL は下記となります。

https://api.chatwork.com/v2

API ドキュメントにも記載されていますが、ChatWork の API を叩くときは必ず https で接続する必要があります。http での接続だとエラーになるので気をつけましょう。

API Token の取得方法は、下記記事にも記載しています。

ChatWork 社が提供している API ドキュメントにすべて記載されているので、カンタンに取得することができます。分かりやすくてとても素敵ですね。

>> http://developer.chatwork.com/ja/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 を利用してテキスト解析などもやってみようと思います。

それでは、良いプログラミングライフを!

 

2 0