Posted at

PowerShellからSlackのにIncoming Webhooksを使って投稿

More than 1 year has passed since last update.

PowerShell の場合、内部は UTF-16 なので、UTF-8 に変換してリクエストを投げる必要がある。

ネットで調べても正しい情報が見つからなかったが、いくつか試行錯誤の結果わかった。

ConvertTo-Json した後、[System.Text.Encoding]::UTF8.GetBytes で変換すればよい。

$output = 何かの処理の結果の配列など

$webhook = "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX"

$message = $output -join "`n"
$payload = @{
channel = "#random";
text = $message;
}
$json = ConvertTo-Json $payload
$body = [System.Text.Encoding]::UTF8.GetBytes($json)
Invoke-RestMethod -Uri $webhook -Method Post -Body $body