Microsoft TeamsのWebhookによる通知


概要

Microsoft TeamsのWebhookを利用した通知を使ってみる。
ここでは、シェルスクリプトからcurlを使ってメッセージを送信する方法をまとめる。

事前準備

TeamsでWebフックの設定を行う。

  1. 設定したいチームのチャネルのメニューから、"コネクタ"を選択する。

  2. コネクタ設定のウィンドウが表示される。
    左メニューの"カテゴリ"から"すべて"を選択 → "incoming Webhook"の"構成"ボタンを押下する。

  3. 構成のウィンドウが表示される。
    名前を適宜入力し、"作成"ボタンを押下する。
    (画像の例では"nitification"という名前のWebフックを作成している。)

  4. "作成"ボタンを押下後、WebフックのURLが発行されるので、これをコピーしておく。
    最後に"完了"ボタンを押下する。

シェルスクリプトを作成する

以下に実装のサンプルコードを示す。

#!/bin/bash

# プロキシ環境下で実行する場合は適宜設定
export https_proxy=http://aaa.bbb.ccc:nnnn

# WebフックURL(※事前準備で発行したURLを設定する)
WEBHOOK_URL='https://outlook.office.com/webhook/~'

# curlコマンド実行
curl -H "Content-Type: application/json" -d "{\"text\": \"メッセージ\"}" $WEBHOOK_URL

実行結果

Webフックを設定したチャネルにメッセージが投稿される。
投稿ユーザは、コネクタ設定時に入力したWebフックの名前/アイコンになる。

メッセージを装飾する

Markdown形式でメッセージを装飾して送信することもできる。

効果 Markdown書式
斜体 *Italic*
太字 **Bold**
太字斜体 ***Bold Italic***
取り消し線 ~~Strike-through~~
リンク [Microsoft](https://www.microsoft.com)
見出し(<h1> から <h6>) # Heading から ###### Heading
箇条書き * List item
箇条書き - List item

【参考】https://docs.microsoft.com/ja-jp/outlook/actionable-messages/message-card-reference

コマンド例

# curlコマンド実行
curl -H "Content-Type: application/json" -d "{\"title\": \"Webhook通知\", \"text\": \"メッセージ\"}" $WEBHOOK_URL

実行結果