エンジニアライフスタイルブログを運営しているミウラ(@miumiu06171)です。
普段はフリーランスでシステムエンジニアをしております。
今回は、外部からSlackチャンネルにメッセージを投稿するためにSlackのWebhook URLを取得する方法と、curlコマンドのPOSTメソッドを使ったメッセージ投稿の動作確認方法をまとめました。
Slackとは
Slackは、ビジネス向けのメッセージアプリの1つで、LINEやSkypeと同じように複数人でメッセージが可能なアプリの1つです。
Webhookとは
Webhookとは、Webアプリケーションでイベントが実行されたとき、外部サービスにHTTPで通知する仕組みのことです。
SlackのWebhook URLを取得すると何ができるか
SlackのWebhook URLを取得すると、指定したSlackチャンネルに外部からメッセージなどを送信できるようになります。
![slack-incomming-webhook-integration-10](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-integration-10-1-640x360.jpg)
Slackワークスペースを開く
SlackのWebhookを取得するため、まずはワークスペースを開きます。
![slack-open](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-open-640x360.jpg)
Slackチャンネルを新規作成
次にSlackのWebhook経由でメッセージを送信するためのSlackチャンネルを作成してみましょう。
下図のようにチャンネルメニューの+ボタンから「チャンネルを作成する」をクリックします。
![slack-channel-create](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-channel-create-640x360.jpg)
下図のように「チャンネルを作成する」ダイアログが開くので、名前欄に任意のチャンネル名を入力し、「作成」ボタンをクリックします。
本記事の例では、「test-webhook」というSlackチャンネルを作成します。
![slack-channel-create-02](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-channel-create-02-640x360.jpg)
Slackチャンネルのメンバーを招待するダイアログが開きますが、今回は「後でする」をクリックします。
![slack-channel-create-03](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-channel-create-03-640x360.jpg)
すると、下図のように「test-webhook」というSlackチャンネルが作成されていることを確認します。
![slack-channel-create-04](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-channel-create-04-640x360.jpg)
SlackチャンネルのWebhook URLを取得する方法
前述で作成した「test-webhook」というSlackチャンネルのWebhook URLを取得する方法を紹介します。
まずはSlackを起動した状態でチャンネル名「test-webhook」をクリックし、右上のユーザーアイコンから「環境設定」をクリックします。
![slack-incomming-webhook-install-01](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-install-01-640x360.jpg)
下図のように環境設定ダイアログが表示されるので、「連携アカウント」メニューの「アプリ管理ページ」リンクをクリックします。
![slack-incomming-webhook-install-02](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-install-02-640x360.jpg)
下図のようにアプリ管理ページが表示されるので、検索ボックスで「incomming」で検索し、「Incomming Webhook」をクリックします。
![slack-incomming-webhook-install-03](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-install-03-640x360.jpg)
「Incomming Webhook」のページに遷移するので、「Slackに追加」ボタンをクリックします。
![slack-incomming-webhook-install-04](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-install-04-640x360.jpg)
Incomming Webhookを追加すると、下図のような画面になるので、「チャンネルへの投稿」欄でSlackチャンネル名「test-webhook」を選択し、「Incomming Webhookインテグレーションの追加」ボタンをクリックします。
![slack-incomming-webhook-integration-05](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-integration-05-640x360.jpg)
インテグレーションの追加が成功すると、下図のように「test-webhook」チャンネルに対するWebhook URLが発行されます。
![slack-incomming-webhook-integration-06](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-integration-06-640x360.jpg)
上記Webhook URLを使うと、外部からSlackの「test-webhook」チャンネルにメッセージを送れるようになります。
SlackチャンネルのWebhook URLにメッセージ投稿する方法
同ページに下図のような例欄があり、赤枠に示すcurlコマンドのPOSTメソッドを実行すると、「test-webhook」チャンネルにメッセージ送信を試すことができます。
![slack-incomming-webhook-integration-07](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-integration-07-640x360.jpg)
この例欄のcurlコマンドをWindows bashに入力してみましょう。
![slack-incomming-webhook-integration-08](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-integration-08-640x360.jpg)
上記のようにcurlコマンドを実行した結果が「ok」となっていれば、正常にSlackの「test-webhook」チャンネルにメッセージ送信できています。
Slackの画面に戻って「test-webhook」チャンネルを開くと、下図のようにメッセージが届いていることを確認できます。
![slack-incomming-webhook-integration-09](https://engineer-lifestyle-blog.com/wp-content/uploads/2022/08/slack-incomming-webhook-integration-09-640x360.jpg)
まとめ
いかがでしたでしょうか。
動作確認として外部からcurlコマンドを実行すると、Slackチャンネルにメッセージ投稿されることを確認しました。
curlコマンド以外にも有名なGitHub等のツールやユーザーアプリケーションとWebhook URLを連携することで、Slackチャンネルにメッセージ投稿することができます。
そのため、開発現場でも多く利用されているので、エンジニアを目指している方はぜひSlackのWebhook URLの取得方法は覚えておくとよいでしょう。