Home > Windows にまつわる e.t.c.

Microsoft Teams へ PowerShell からメッセージを飛ばす


Windows Update とかの通知をメールではなくチャット ツールに Web API でメッセージ飛ばそうとしていたのですが、slack だとうまくいかず...
(僕の英語力不足で URI とか鍵発行がうまくできす > <)

そうこうしていたら Microsoft Teams が無料提供になったので、Teams にメッセージ飛ばしてみました。

Microsoft Teams を無料で
https://products.office.com/ja-jp/microsoft-teams/free

 

Teams は、マイクロソフト アカウントで登録すれば良いので、使い始めるのは難しくありません。

 

URI の発行

Microsoft Teams API は URI だけでハンドリングできるので、アクセス用の URI を発行します。

Windows Update 通知が目的だったので、専用のチャンネルを作りました。

URI 発行は、Web サイトからでも、アプリからもできますのでお好きな方で発行してください。(操作はどちらでも一緒)

Microsoft Teams サイト
https://teams.microsoft.com

Microsoft Teams アプリダウンロード
https://teams.microsoft.com/downloads

 

「ストア」を開く

「Incoming Webhook」を検索

メッセージ送信先を選択

インストール

「コネクタ」を設定

「Incoming Webhook」を構成

メッセージの送信者のアカウントを作成

作成

発行された URI を控えて完了

 

PowerShell でメッセージ送信

Teams に送信するメッセージは JSON 形式なので、JSON で送信メッセージを作成し、Web API でメッセージ送信します。

# Web API の URL
$url = "ここに発行された URI を書く"

# Invoke-RestMethod に渡す Web API の引数を JSON で作成
$body = ConvertTo-JSON @{
    text = "Hello World"
}

# API を叩く
Invoke-RestMethod -Method Post -Uri $url -Body $body -ContentType 'application/json'

 

Web API を叩くと、こんな感じでメッセージが飛びます。

送信されたメッセージ

 

メンションは現状で効かないようなので、通知が必要な場合は Teams Client 側でチャンネル フォロー設定するしかなさっぽです。

 

参考情報

Post notifications to Microsoft Teams using PowerShell | Building Clouds
https://blogs.technet.microsoft.com/privatecloud/2016/11/02/post-notifications-to-microsoft-teams-using-powershell/

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.