SlackのIncoming Webhooksについて
- 自分の知っていたSlackのIncoming-WebhookはLegacyとしてかなり前に非推奨になっていた話。
サポートに関する情報
Discontinuing support for legacy custom bots and classic appsによれば
- 2024年6月: 新しいlegacy appsとclassic appsの作成をブロック開始
- 2025年3月31日: legacy custom botsのサポート終了
- 2026年5月25日: classic appsのサポート終了
公開されているスケジュールは上記のもので、Legacy Custom Integrationsにあたる、Legacy Incoming Webhookは明確に期日を決められているわけではなさそうです。
色々と仕様の変更については書かれていますが、基本的にはpayloadとして互換性もあるので、ひとまず移行してしまった方が無難という結論です。
Legacy Incoming Webhook と Incoming Webhook
Legacy Incoming Webhook
- Incoming Webhookでアプリを検索すると表示されます
- We do not recommend their use. という注意書きが上部にあります
- 設定画面が1画面で完結し、非常にシンプルでわかりやすく設定できます
Incoming Webhook
- Slack AppをにてCreate New Appを選択
- From scratchを選択、App Nameとworkspaceを入力してCreate
- Basic InformationのDisplay Informationを入力
- Features > Incoming Webhooks
- Activate Incoming Webhooks を On にします
- Add New Webhookで、URLをchannelごとに作成します
それぞれの違い
Legacy Incoming Webhook
- ペイロード内でusername、icon、channelを上書きできる
- URL知ってたらどのchannelでも書き込めるわけで、あまりよくない仕様ですね
- 作成者が組織を離れるとWebhookが無効化される管理上の問題があります
- レイアウトはattachmentsで表現します
- ペイロード内でusername、icon、channelを上書きできる
Incoming Webhook
- レイアウトはBlock Kitを使用してより高度なメッセージ作成が可能です
- ただし、attachmentsも非推奨ですが、使えるので互換性は担保されそうです
- 特に色指定はattachmentsしか表現できず、メッセージの緊急度で色分けしたいケース(監視アラート等)では使うしかありません
- 色指定に
good
/warning
/danger
は使えないという情報を見かけましたが、問題なく使えました。カラーコードもOK(例:#ff0000
)
- 色指定に
- 特に色指定はattachmentsしか表現できず、メッセージの緊急度で色分けしたいケース(監視アラート等)では使うしかありません
- attachmentsでのテストペイロード
1
2
3
4
5
6
7
8
9
10
11curl -X POST -H 'Content-type: application/json' \
--data '{
"text": "Hello, World!",
"attachments": [
{
"color": "good",
"text": "This is a test message"
}
]
}' \
https://{YOUR_WEBHOOK_URL}