Mattermost 記事まとめ: https://blog.kaakaa.dev/tags/mattermost/
本記事について
Mattermost の統合機能アドベントカレンダーの第 2 日目の記事です。
本記事では、Mattermost の最も簡易な統合機能である Incoming WebHook(内向きのウェブフック)機能について紹介します。
Incoming WebHook
Incoming WebHook は外部アプリケーションから Mattermost の投稿を作成するための機能です。
Incoming WebHook を使うことで、Mattermost の外側で発生したイベントを簡単に Mattermost 上に通知することができます。
Incoming WebHook に関する公式ドキュメントは下記になります。
- https://docs.mattermost.com/developer/webhooks-incoming.html
- https://developers.mattermost.com/integrate/incoming-webhooks/
一つ目の公式ドキュメントは Incoming WebHook の概要について記述しており、二つ目の Developer Document はより細かい開発者向けの情報が書かれています。
設定
Incoming WebHook を利用するには、システムコンソール > 統合機能管理 > 内向きのウェブフックを有効にする の設定が有効
になっている必要があります。
また、統合機能はデフォルトではシステム管理者とチーム管理者しか作成することができませんが、誰でも作成できるようにしたい場合、システムコンソール > 統合機能管理 > 統合機能の管理を管理者のみに制限するの設定を無効
してください。
作成
メインメニュー > 統合機能から統合機能の画面を開き、
内向きのウェブフック > 内向きのウェブフックを追加するから、新たな Incoming WebHook を追加します。
ウェブフックの作成画面で入力する情報は下記の通りです。
- タイトル: ウェブフックの一覧ページに表示されるタイトルです
- 説明: ウェブフックの説明です
- チャンネル: チャンネル名を指定せずに Incoming WebHook を実行した場合、ここで指定したチャンネルに投稿が作成されます
- このチャンネルに固定する: この Incoming WebHook では、チャンネルで指定したチャンネルにしか投稿を作成できなくなります
Incoming WebHook の作成が完了すると、WebHook 実行時に指定する URL が表示されます。この URL に対して HTTP リクエストを送信することで、外部アプリケーションから Mattermost に投稿を作成することができます。
作成した Incoming WebHook は後で編集することも可能です。
実行
今回は、curl
コマンドを使って、定期的にマシンの DISK 容量を通知するスクリプトを作ってみます。
DISK=`df -h /System/Volumes/Data`
curl \
-H "Content-Type: application/json" \
-d "{\"text\": \"${DISK}\"}" \
http://localhost:8065/hooks/ucw5qjw86jgeum77o1uw8197jr
先ほど生成された WebHook の URL にtext
フィールドを持つ JSON を送信するだけで投稿を作成することができます。
curl
コマンドを実行するスクリプトをcron
などで毎日定刻に実行することで、毎日ディスクの状況をチェックしたりすることができます。
さいごに
Incoming WebHook の基本的な使い方について紹介しました。 明日は、Incoming WebHook 実行時のパラメータについて紹介します。