プログラミング備忘録

仕事で覚えたことのまとめ

TeamsのWebHookのメッセージで改行する方法

まずはこの画像を見ていただきたい

f:id:nigou2:20210710122631p:plain
WebHookのメッセージ

このようにTeamsのメッセージででフォントやリンクを設定する際に、

通常のメッセージなら

f:id:nigou2:20210710123037p:plain

のように書式を設定できますが、WebHookの場合はどうなんでしょう。

使うもの

Microsoft Teams

メッセージを自動で投稿する対象。

WebHook

Teamsのチャネルに設定し、発行されるURLにデータをPOSTするとチャネルに自動でメッセージを送ることができる。

PowerShell

HTTPリクエストのテストに使用する。

Step1 チャネルにWebHookを追加する

WebHookを追加したいチャネルの「・・・」からコネクタを選択し、 f:id:nigou2:20210710125517p:plain

「Incoming Webhook」を選択します。 f:id:nigou2:20210710125635p:plain この時、青いボタンが「追加」になっている場合は コネクタを追加するかの確認画面が立ち上がったりますので「OK」を押します。

再度WebHookを追加したいチャネルの「・・・」からコネクタを選択し、 青いボタンが「構成」になっているのを確認し、押します。 f:id:nigou2:20210710125902p:plain

名前と画像を編集し、左下の「作成」ボタンを押します。 f:id:nigou2:20210710130050p:plain

メッセージを送る際に使用するURLがは行されるので、それをコピーしてから左下の「完了」を押します。 f:id:nigou2:20210710130304p:plain

これでWebHookの設定は完了です。

Step2 WebHook経由でメッセージを送る

※WebHookの発行したURLは「https://hogehoge/webhookb2/fugafuga/IncomingWebhook/poepoe」として説明を続けます。

テストを兼ねてメッセージを送ってみます。 PowerShellで下記のコマンドを実行すると、

$url = "https://hogehoge/webhookb2/fugafuga/IncomingWebhook/poepoe"
$postText = @{
                title = "test-title"
                text="test-message"
                } | ConvertTo-Json -Compress
$body = [Text.Encoding]::UTF8.GetBytes($postText)

Invoke-RestMethod -Method Post -Uri $url -Body $body -ContentType 'application/json'```

下図のように実行されます。 f:id:nigou2:20210710132046p:plain

フォントやリンクのないメッセージであればこれで終了です。

# Step3 本文に書式を設定する

WebHookにPOSTするBODYにマークダウン記法で記載することで、自動投稿メッセージ本文の書式を設定できます。 以下に例を載せておきます。

$postText = @{
                title = "test-title"
                text="**太字**
                <br>
                <font color='red'>赤いフォントの文字</font>
                <br>
                [リンク先](https://www.google.com)"
                } | ConvertTo-Json -Compress

f:id:nigou2:20210710132913p:plain