📆

[Mattermost Integrations] Incoming WebHook 基本編

2021/06/19に公開

Mattermost 記事まとめ: https://blog.kaakaa.dev/tags/mattermost/

本記事について

Mattermost の統合機能アドベントカレンダーの第 2 日目の記事です。

本記事では、Mattermost の最も簡易な統合機能である Incoming WebHook(内向きのウェブフック)機能について紹介します。

Incoming WebHook

Incoming WebHook は外部アプリケーションから Mattermost の投稿を作成するための機能です。

overview

Incoming WebHook を使うことで、Mattermost の外側で発生したイベントを簡単に Mattermost 上に通知することができます。

Incoming WebHook に関する公式ドキュメントは下記になります。

一つ目の公式ドキュメントは Incoming WebHook の概要について記述しており、二つ目の Developer Document はより細かい開発者向けの情報が書かれています。

設定

Incoming WebHook を利用するには、システムコンソール > 統合機能管理 > 内向きのウェブフックを有効にする の設定が有効になっている必要があります。

system console

また、統合機能はデフォルトではシステム管理者とチーム管理者しか作成することができませんが、誰でも作成できるようにしたい場合、システムコンソール > 統合機能管理 > 統合機能の管理を管理者のみに制限するの設定を無効してください。

作成

メインメニュー > 統合機能から統合機能の画面を開き、

main menu

内向きのウェブフック > 内向きのウェブフックを追加するから、新たな Incoming WebHook を追加します。

menu

ウェブフックの作成画面で入力する情報は下記の通りです。

incoming webhook

  • タイトル: ウェブフックの一覧ページに表示されるタイトルです
  • 説明: ウェブフックの説明です
  • チャンネル: チャンネル名を指定せずに Incoming WebHook を実行した場合、ここで指定したチャンネルに投稿が作成されます
  • このチャンネルに固定する: この Incoming WebHook では、チャンネルで指定したチャンネルにしか投稿を作成できなくなります

Incoming WebHook の作成が完了すると、WebHook 実行時に指定する URL が表示されます。この URL に対して HTTP リクエストを送信することで、外部アプリケーションから Mattermost に投稿を作成することができます。

complete

作成した Incoming WebHook は後で編集することも可能です。

list

実行

今回は、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 を送信するだけで投稿を作成することができます。

post

curlコマンドを実行するスクリプトをcronなどで毎日定刻に実行することで、毎日ディスクの状況をチェックしたりすることができます。

さいごに

Incoming WebHook の基本的な使い方について紹介しました。
明日は、Incoming WebHook 実行時のパラメータについて紹介します。

Discussion