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

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

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

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

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

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

 

Slack アプリの作成

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

image-1

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

image-2

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

image-3

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

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 モジュールを使用するか、独自のモジュールを作成して、様々なメッセージ送信を自動化できると思います。

 

関連ブログ


Comments
Comments are disabled in preview mode.
Loading animation