Pythonでバッチを作った時にエラーや処理結果をChatworkに送るプログラムを作る機会があったので備忘的に書き残しています
シンプルな作りかつ公式ドキュメントにあるソースをちょっと弄った程度の簡単プログラムです
APIの利用に必要なもの
まず最初にプログラムのなかで必要なパラメータが2つありまして
- APIトークン
- ルームID
の取得方法をご紹介
APIトークンを取得
※ここでAPIトークンを取得したアカウントでメッセージを送ることになるので普段使いするアカウントではなく”通知用アカウント”を別で作ってトークンを取得することを推奨します
ログイン後に右上にあるアカウント名をクリックして表示されるメニューの中から”サービス連携“をクリック

ChatworkのWEBページへ飛ぶので左側のメニューで”APIトークン“をクリックするとAPIトークンが表示される画面に遷移するのでコピー

ルームIDを取得
次はメッセージを送りたいルームを指定するために対象のルームIDを取得します
①”通知対象にするグループチャット“をクリックしてアクティブにしておく
②”右上の歯車のアイコン“をクリック
③”グループチャットの設定“をクリック
の順にメニュー遷移する

グループチャットの設定画面左下に”ルームID“が表示されているので控えておく

Pythonのプログラム
※2025/04/03 APIリクエストの仕様変更反映してます
肝心のPythonプログラムがこちら
公式ページのソースをちょっと弄っただけですが、bool型にしてステータスコードが200かどうかでTrue・False判定してます
import requests
# messageの引数だけでも通知できるように初期値の設定
CHATWORK_TOKEN = '********************************'
CHATWORK_ROOM_ID = '999999999'
def send_to_chatwork(message, chatwork_token=CHATWORK_TOKEN, room_id=CHATWORK_ROOM_ID) -> bool:
headers = {"X-ChatWorkToken": chatwork_token}
url = f"https://api.chatwork.com/v2/rooms/{room_id}/messages"
payload = {
"self_unread": 0,
"body": message
}
headers = {
"accept": "application/json",
"content-type": "application/x-www-form-urlencoded",
"x-chatworktoken": chatwork_token
}
response = requests.post(url, data=payload, headers=headers)
if response.status_code == 200:
return True
else:
return False
import requests
# messageの引数だけでも通知できるように初期値の設定
CHATWORK_TOKEN = '********************************'
ROOM_ID = '999999999'
def send_to_chatwork(message, token=CHATWORK_TOKEN, room_id=CHATWORK_ROOM_ID) -> bool:
headers = {"X-ChatWorkToken": token}
url = f"https://api.chatwork.com/v2/rooms/{room_id}/messages"
data = {"body": message}
response = requests.post(url, headers=headers, data=data)
if response.status_code == 200:
print("Message sent successfully.")
return True
else:
print("Failed to send message.")
return False
def main():
message = 'テスト通知'
send_to_chatwork(message, '5cbc320450032388263d0073b7473a54', '331928429')
if __name__ == "__main__":
main()
Chatwork上でメッセージを送信した時と同じようにプログラムでメッセージ送信されている
通知結果
↓のようにAPIトークンを発行したユーザーでメッセージを送ることができます

公式ドキュメント
公式ドキュメントはいくつかありますが、↓が簡易テストもできてわかりやすいです

あとがき
LINEの通知プログラムも作りましたが仕事で使おうと思うとするとChatworkの方が利用シーン多いと思って作ってみました
気が向いたらTeams版も作ろうかと思います
LINEの通知プログラム
LINEの通知プログラムはコチラからどうぞ
※LINE Notifyは2025年3月で終了しました
コメント