DiscordにWebhookで通知

ゲームでも、個人用のチャットツールでも、Discordを利用する機会が増えてきました。
そうなると、fail2banやMackerelの通知先にDiscordを選ぶことになります。
今回は、その時のメモです。

Webhookで通知する

まず、「Webhookで何が出来るのか」ということなんですが、Discordから発行されるURLにリクエストすることで、プログラムや外部サービスからメッセージを投稿することができます。
またそのURLの末尾に文字列を追加することで、サポートしている外部サービスと同じスタイルでメッセージを投稿することが出来ます。

通常形式のWebhook

通常形式のWebhookの場合は、Discordから発行されたURLそのままです。
ドキュメントについては、こちら

例)

$ curl -X POST -d '{"content": "テスト"}' 'Discordから発行されたWebhookのURL'

Slack形式のWebhook

Slack形式のWebhookの場合は、Discordから発行されたURLの末尾に/slackをつけたURLに対して、リクエストします。
ドキュメントについては、こちら

Slackと同じ形式で使えるため、Slackに通知するサービスなどの通知先に、このURLを登録すると、特に何もせずとも連携可能です。
仕事では、Slackをメインで使っているため、個人的にグッドポイントです。

例)

$ curl -X POST -d '{"content": "テスト"}' 'Discordから発行されたWebhookのURL/slack'

Github形式のWebhook

Github形式のWebhookの場合は、Discordから発行されたURLの末尾に/githubをつけたURLに対して、リクエストします。
ドキュメントについては、こちら

Githubからの通知に対応した形式ですね。
リポジトリに設定しておくことで、プルリクエストやマージ、課題操作などのイベントを、Discordで拾うことができます。
便利ですね。

例)

$ curl -X POST -d '{"content": "テスト"}' 'Discordから発行されたWebhookのURL/github'

どういう時に使う?

私が使っているケースを、ざっと列挙していきます。

  • GithubのNotifiion通知
  • Mackerelの通知
  • fail2banの通知

はい、3つぐらいしか、まだ設定していません。

最後に

Slackに来る通知も、徐々にDiscordへ移行していきたいですね。
Slackと違ってログ残るの凄く嬉しいから。

ABOUTこの記事をかいた人

好きなゲームを好きなだけプレイしています。 アドオンや規約違反に触れないようなツールを作ったりしています。 会社勤めに飽きてきました。