<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1678611822423757&amp;ev=PageView&amp;noscript=1">

PowerShell を使用して Slack メッセージを送信する方法

Adam Bertram| May 25 2020

| IT insights, PowerShell

テレワーク中の社員同士が連絡を取り合うには、Slack のようなチームコラボレーションサービスを使うのが便利です。

Slack は、直感的なインタフェースと、DropboxGitHubTrello などのよく使われるサービスと連携できる堅牢な API を備えた使いやすいプラットフォームで、多くの組織で利用されています。

よく使うサービスに Slack が組み込まれていなくても問題ありません。Slack API を使用すれば、ほとんど何でも自由に構築できます。このブログでは、PowerShell を使用して Slack メッセージを送信する方法を説明します。監視で問題があったときや DevOps リリースのパイプライン・タスクに障害が発生したとき、または何らかの理由で自分に簡単なダイレクトメッセージを送りたいときなどに、PowerShell を使って Slack メッセージを送信することが可能です。

Slack API PowerShell モジュールを使用すると、簡単な PowerShell コマンドで Slack に送信するどんなメッセージでも統合でき、Slack チャネルを社員コミュニケーションのハブとして機能させることもできます。

 

Slack アプリの作成

まず最初に、[Create a Slack App] ページでアプリ名とワークスペースを指定し、Slack アプリを作成します。image-1

image-1

PowerShell Slack API に接続するので、Incoming Webhook を作成する必要があります。image-2

image-2

Incoming Webhooks で、オプションを On にして、最下段の Add New Webhook to Workspace ボックスをクリックします。image-3

image-3

Webhook でのポストに使うチャネルを選択し、Allow をクリックします。image-4

image-4

その後、Incoming Webhooks に戻ると、Webhook URL が表示されているはずです。安全のために、Copy をクリックして、この Webhook URL をコピーしてどこかに貼り付け、保管するようにしてください。image-5

[Webhook URL が取得できたら、PowerShell にドロップするための準備は完了]

PSSlack モジュールの使用

次に、PowerShellを開き、Warren Frame PSSlack モジュールをダウンロードします。必ずしも使用する必要はありませんが、このモジュールを使用すると、PowerShell から Slack API とインタラクトするのに便利で、大幅に時間を短縮できます。

PowerShell を使って Slack チャネルにメッセージを送信する準備ができたら、PSSlack モジュールの Send-SlackMessage 関数を使用します。Slack メッセージを送信する方法はいくつかありますが、最も簡単なのは Webhook URL を使用する方法です。PSSlack モジュールがセッションにロードされたら、Send-SlackMessage 関数を使用して Webhook URL とメッセージテキストを指定します。

Send-SlackMessage -Uri <Webhook URL> -Text 'testing'

これで、Slack Incoming Webhook で設定したチャネルにメッセージが送信されます。

ただ、このままでは、メッセージを送信するたびに、長い Webhook URL を入力しなければなりません。この面倒を避ける1つの方法は、デフォルトのパラメータが入った関数を作成することです。

以下に、Send-Notification という関数の例を示します。この関数を使用して、Send-Notification -Message 'メッセージテキスト' と入力(メッセージテキストには具体的なメッセージを入れる)するだけでSlack Incoming Webhook で設定したチャネルにメッセージが送信され、いちいち長い Webhook URL を入力する必要がなくなります。

Function Send-Notification {
    Param(
        [Parameter(Mandatory)]
        [string]$Message,
 
        [Parameter()]
        [string]$SlackWebhookURI = '<webhook URI>'
    )
 
    Send-SlackMessage -Uri $SlackWebhookURI -Text $Message
}

まとめ

Slack API PowerShell を使用してできることのごく一部について紹介しました。Slack API については、詳細を調べて、何が考えられるか検討してみてください。PSSlack PowerShell モジュールを使用するか、独自のモジュールを作成して、様々なメッセージ送信を自動化できると思います。

 

Topics: IT insights, PowerShell

Default HTML block

コメントをどうぞ

メールアドレスは公開されません。アスタリスクマーク*のついたフィールドは必須項目です。

THIS POST WAS WRITTEN BY Adam Bertram

Adam Bertram is a 20-year veteran of IT. He’s currently an automation engineer, blogger, independent consultant, freelance writer, author, and trainer. Adam focuses on DevOps, system management, and automation technologies as well as various cloud platforms. He is a Microsoft Cloud and Datacenter Management MVP and efficiency nerd that enjoys teaching others a better way to leverage automation.

無料試用版

無料試用版をお気軽にお試しください。

無料試用版を試す

コンタクト

ご質問、ご意見をお寄せください。

連絡先

ブログの定期メール便

ブログを定期的にメール配信いたします。