⚙️

【Slack】Webhook URLを取得する

2025/01/10に公開

他のアプリから Slack へメッセージを投稿したい。(俗にいう ChatOps)

調べてみると、Incoming Webhookを作成したらできるそう

今回はWebhook を作成し、curl コマンドでメッセージを投稿できるようにしていきます!

応用がいろいろ効くので本記事を参考にやってみてください!

前提

Slack に登録済みの方を想定しています。

登録されていない方はこちらからご登録ください。

Webhook の作成

https://slack.com/services/new/incoming-webhook

↑ にアクセスします

Webhook を作成したいチャンネルを選択します

すでにあるチャンネルを選択する場合チャンネルを選択をクリックします

クリック後、「アイテムはありません」と表示されたときは それもクリックするとチャンネルが表示されます

新しくチャンネルを作成する場合は「新しいチャンネルを作成する」をクリックします

チャンネル名(例として example-webhookとします)を入力して「次へ

パブリックかプライベートか選択します。今回はパブリックとしておきます

「作成」をクリックします

チャンネルを選択したら「Incoming Webhook インテグレーションの追加」をクリック

Webhook の作成が完了したら詳細画面に遷移します

そこに Webhook URL や curl コマンドの例が載っています

チャンネルやメッセージを投稿するアカウント名やアイコンなども変更できます

メッセージを投稿してみる

先ほど確認した curl コマンドの例をうってみます

// チャンネル名とWebhook URLは自分のものに書き換えて下さい
curl -X POST \
--data-urlencode "payload={\
\"channel\": \"#example-webhook\",\
\"username\": \"webhookbot\",\
\"text\": \"これは webhookbot という名のボットから #example-webhook に投稿されています。\",\
\"icon_emoji\": \":ghost:\"\
}" https://hooks.slack.com/services/××××××××××××××××××××××××××××××××

例のままだとエラーになるのでチャンネル名を先ほど選択したチャンネルに変更してください

成功すると下記のようなメッセージが投稿されます

Webhook URL を確認したくなったら。。。

https://hisuispace.slack.com/apps/A0F7XDUAZ--incoming-webhook-?tab=settings&next_id=0

↑ に作成したWebhook の一覧が見れるのでそこから設定編集画面に行けば確認できます

ペンのマークを押せば設定編集画面に遷移できます

参考記事

https://slack.dev/java-slack-sdk/guides/ja/incoming-webhooks

https://qiita.com/vmmhypervisor/items/18c99624a84df8b31008

Discussion