Slack:Webhook URL取得してSlackに通知する
こんにちは
システム通知をSlackに飛ばしたいことはありますでしょうか?私は結構あります。
その際、Incoming Webhookを使用することは珍しくないと思います。
このIncoming Webhookですが、今まではカスタムインテグレーションから設定していたと思います。
しかし、2020年よりカスタムインテグレーションは非推奨になり、Slack Appを作成して利用する方法が推奨されるようになりました。
移行期間中なので使えないわけではないですが、いつ使えなくなるかアナウンスされていないため、カスタムインテグレーションを使っている方もSlack Appも把握されたほうが良いと思われます。
今回、社内で問い合わせが増えたので、画像多めにしました。
新方式(Slack app)
Slack APIのページから[Create New App]をクリックします
アプリ管理者は別の方法があります
-
URLからダイレクトに[アプリの管理]に行く場合
以下のURLよりSlackアプリを選択します
https://slack.com/apps -
GUIから行う場合
[設定と管理]→[アプリを管理]の順にクリックします
-
ここから共通
[管理]をクリックします
[Create New App]をクリックします
[Form scratch]をクリックします
[Incoming Webhooks]→[Activate Incoming Webhooks]のトグルボタンを押して[On]にします
[Add New Webhook to Workspace]をクリックします
[App Name]にアプリの名前を入力します
[Pick a workspaces to develop your app in:]に利用したいWorkspacesを選択します
[Create App]をクリックします
[[App Name]Requires a channel to post to as an app]に通知したいチャンネルを選択し[Allow]をクリックします
Webhook URLをコピーしましょう
旧方式(カスタムインテグレーション)
以下のURLよりIncoming Webhookインテグレーションの追加を選択します
GUIから行う場合
[設定と管理]→[アプリを管理]の順にクリックします
[カスタマーインテグレーション]→[Incoming Webhookインテグレーションの追加]の順にクリックします
[Slackに追加]をクリックします
追加するチャンネルを選択→[Incoming Webhook]をクリックします
WebhookURLをコピーしましょう
Slackへ通知
SlackAppでMacの場合、Sample curl request to post to channelに書いてあるコードをコピーし、ターミナルから実行すると、Slackに通知が飛びます。
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com/services/xxxxxxxxxxx/yyyyyyyyyyy/zzzzzzzzzzzzzzzzzzzzzzzz
メンションが必要な場合、ユーザIDを取得して<@user_id>にする
個別にユーザIDを取得する方法
ユーザープロフィールの中にあるCopy number IDをクリック
curl -X POST -H 'Content-type: application/json' --data '{"text":"<@USER_ID> Hello, World!"}' https://hooks.slack.com/services/xxxxxxxxxxx/yyyyyyyyyyy/zzzzzzzzzzzzzzzzzzzzzzzz
特殊メンション(channnel,here,everyone)は以下の通りとなります。
- 通知方法
Slack | API | 通知範囲 |
---|---|---|
@channel | <!channel> | チャンネル参加者すべて |
@here | <!here> | アクティブな参加者すべて |
@everyone | <!everyone> | メンバーすべて(#generalで利用) |
curl -X POST -H 'Content-type: application/json' --data '{"text":"<!here> Hello, World!"}' https://hooks.slack.com/services/xxxxxxxxxxx/yyyyyyyyyyy/zzzzzzzzzzzzzzzzzzzzzzzz
Discussion