2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mattermost × Webhook × Python:チャット通知ボットの作り方をまとめてみた

Last updated at Posted at 2025-06-09

はじめに

本記事では、Mattermost にメッセージを自動投稿するボットを Python で簡単に作成する方法を紹介します。

思ったよりもスムーズに作成できたので、興味のある方はぜひ参考にしてみてください!

Webhook 機能を利用することで、サーバーへの通知や定期投稿が手軽に実現でき感動しました...!!

書こうと思ったきっかけ

個人的にWebhook(ウェブフック)の仕組みを理解したいと考え、前回技術検証した Mattermost を使って、今回は Webhook を使った自動投稿の検証をしてみようと思いました。

前回の記事の続きになります!まだの方はぜひ!!

※内容に不備などがございましたら、お手数ですが優しくご指摘いただけますと幸いです。

Webhook(ウェブフック)とは?

Webhook(ウェブフック)は、特定のイベントが発生した際に、事前に指定されたURLに自動でHTTPリクエストを送信する仕組みです。

Screenshot 2025-06-09 at 20.53.35.png

引用画像:https://bcart.jp/functions/detail/158/

リアルタイムに外部サービスと連携でき、通知や処理の自動化に活用されます。たとえば、GitHubのプッシュ通知やチャットアプリへの自動投稿などがあります。

参考文献

実際にやってみた

検証内容の概要について

  • Mattermost の Webhook URL を取得
  • Python スクリプトで Webhook 経由で投稿
  • 任意の時間に実行(例:cron で定期投稿も可)

Step 1: Webhook の作成(Mattermost)

  • Mattermost に管理者または Bot 権限でログイン

Screenshot 2025-06-09 at 20.57.25.png

  • 任意のチャンネルに移動(Town Squareで検証を進めていきます)

Screenshot 2025-06-09 at 20.58.30.png

  • メニューから「インテグレーション > 入力用 Webhook」を選択

Screenshot 2025-06-09 at 20.59.46.png

Incoming Webhooksになります!

Screenshot 2025-06-09 at 21.00.43.png

  • 「新しい入力用Webhookを追加」

Screenshot 2025-06-09 at 21.02.48.png

  • 名前: my-bot
  • チャンネル: 任意の投稿先チャンネル
  • 「Save」を押すと Webhook URL(例: https://mattermost.example.com/hooks/xxxxxxxx)が発行される

こんな感じです!

Screenshot 2025-06-09 at 21.04.04.png

Apple Silicon 対応のPython環境を作成

ステップ1:venv で仮想環境を作成する

cd ~/Desktop/macbook\ pro/docker
python3 -m venv venv
source venv/bin/activate

ステップ2:ライブラリをクリーンにインストール

pip install --upgrade pip
pip install requests

こんな感じで問題なく仮想環境を構築できました!

Screenshot 2025-06-09 at 21.06.02.png

Step 2: Python スクリプトを書く

import requests

WEBHOOK_URL = "https://mattermost.example.com/hooks/xxxxxxxx"
MESSAGE = "こんにちは!ボットからのメッセージです🌟"

def post_to_mattermost():
    res = requests.post(WEBHOOK_URL, json={"text": MESSAGE})
    print("投稿成功" if res.status_code == 200 else f"投稿失敗: {res.status_code}")

if __name__ == "__main__":
    post_to_mattermost()

コードの中でしていること

Mattermost の Webhook を使って指定メッセージを送信する処理 を行っています。
簡単にまとめると以下の通りです:

  • WEBHOOK_URL送信先の Webhook URL を指定
  • MESSAGE送るメッセージを定義
  • requests.post()メッセージを送信
  • 成功すれば「投稿成功」、失敗すれば ステータスコード付きで「投稿失敗」 と表示

実行すると、Mattermost に「こんにちは!ボットからのメッセージです🌟」 が投稿されます。

実行方法

python mattermost_bot.py

問題なくメッセージが届いていることが確認できました!

Screenshot 2025-06-09 at 21.10.40.png

補足

  • 投稿内容に @channel@here を含めれば通知にも使えます。
  • 複雑な処理が必要な場合は、Mattermost の Bot Token を使って API 経由でやり取りする方法もありますが、Webhook を使う方法が最も簡単だと思いました!

まとめ

ここまでお読みいただき、ありがとうございました!

Mattermost の Webhook 機能を使えば、簡単にチャット通知ボットを作ることができます。

Python スクリプトと組み合わせれば、定期実行やイベント駆動型の通知などもすぐに実現できます。

まずは Webhook の仕組みを試して、用途に応じて拡張してみてください...!(楽しい検証だったので、またいろいろ試してみようと思います!!)

おまけ:定期投稿したい場合(Linux)

crontab -e

cron(クーロン) というスケジューラーを使って、毎日特定の時間に Python スクリプトを実行する設定も可能です...

# 毎日9時に投稿
0 9 * * * /usr/bin/python3 /path/to/mattermost_bot.py
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?