ChatworkにPowerShellからメッセージ送信


0. はじめに

うちの会社では、Chatworkをコミュニケーションツールとして使っています。
社内の情報共有は勿論のこと、システム管理のアラートもChatworkに飛ばしてますが、最近ガンガン使っているAzure環境からWebHookを利用した監視アラートを実施すべく、まずはその第一歩となるPowerShellからのチャットワーク通知です。

1. PowerShellスクリプトを準備

test.ps1 ファイルを作成しましょ。
固定メッセージであれば、簡単です。PowerShellの場合、curl ではなくInvoke-RestMethod を利用します。

$ROOM_ID="<ChatWorkのルームIDを指定>"
$TOKEN_ID="<ChatWorkのトークンIDを指定>"
$TO_ADDRESS="[To:<TOに指定するID>]"
$MSG=$TO_ADDRESS + "`n" + "<送信したいメッセージ>"

Invoke-RestMethod -Uri "https://api.chatwork.com/v2/rooms/$ROOM_ID/messages" -Method POST -Headers @{"X-ChatWorkToken" = $TOKEN_ID} -Body "body=$MSG"


<Sample>
$ROOM_ID="123456789"
$TOKEN_ID="abcdefghijklmnopqrstuvwxyz"
$TO_ADDRESS="[To:99999999]"
$MSG=$TO_ADDRESS + "`n" + "Oh...Yes"

Invoke-RestMethod -Uri "https://api.chatwork.com/v2/rooms/$ROOM_ID/messages" -Method POST -Headers @{"X-ChatWorkToken" = $TOKEN_ID} -Body "body=$MSG"

あとは、作成したスクリプトをPowerShellで実行するだけです。

補足

・ルームIDの確認方法

   送信したいチャットワークをブラウザに表示させて、URLを確認してください。
   https://www.chatwork.com/#!rid**********
   ****** 部分が数字になってます。これが_ルームID_!!

トークンIDの確認方法(Chatwork公式サイト)