Slackに通知メッセージを送りたい

slack開発関連

監視アラートなんかでメールじゃなくてSlackにメッセージ送りたいなんてことがよくあると思いますが、設定方法を毎回忘れてしまうので手順をまとめておこうと思います。
Slackのドキュメントってやれることが多いせいなのか、なんとなく読みづらいんですよね・・・Incoming Webhooksを使うのですが設定自体はとても簡単です。

Incoming WebHooksのURL取得

ここにアクセスしてウィザードに沿って選択していけばAPIのURLが生成されます。

チャネルの選択

メッセージ送信先のチャネルを選択して「Add Incoming WebHooks integration」ボタンを押します。

Exampleを試してみる

macユーザの場合はターミナルにcurlを貼り付ければテスト実行できます。


実行するとこんなメッセージがSlackに飛んできます。

問題なく実行できたら「Save Settings」ボタンを押します。
(実際にはこれやらなくても大丈夫ですが、Saveしておくと後で一覧で確認できます)

Slackにメッセージを送る

Webhook URLをコピーしてPOSTでJSONを送ればメッセージ送信できます。
以下はaxiosで送る場合の例です。”text”が本文用のパラメータです。

その他パラメータ

Exampleもあるので書かなくてもわかるとは思いますが・・・

本文にリンクをつける

フォーマットは「<URL>」となります。ラベルをつける場合は「<URL|ラベル>」です。
また、「<@ユーザ名>」でメンションとなります。

{"text":"詳細は<https://shimer-system.com|ここ>をクリック"}

名前とアイコンの変更

usernameとicon_emojiパラメータを追加。絵文字ではなく外部画像を使う場合は「”icon_url”:”URL”」となります。標準の絵文字コードの一覧はこちら

{"username":"botA", "icon_emoji":":ghost"}

チャンネルを指定

チャンネル指定は「”channel”:”#other-channel”」を追加。ダイレクトメッセージの場合は「”channel”:”@ユーザ名”」

参考

・もっと細かいAPI仕様はここ

・メッセージプレビューテストツールはここ

さいごに

ちょっとしたツールなんかだとメール送信よりもSlackの方が圧倒的簡単に送信できて便利です!!

全然関係ないですがトム・デマルコさんの本はけっこう好きです
タイトルとURLをコピーしました