17
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Slack通知用WebAPIがワークフローでつくれるようになっていた

Posted at

#まとめ
・Slackワークフローが超絶進化していた
・Incomming Webhookの設定をしなくてもワークフロー機能だけで通知が可能に
・変数が任意も設定可能

これはつまり

POST通信で、任意の情報を変数としてSlackに通知出来るWebAPIがワークフローで簡単につくれるようになった

ということになろうかと思います。

手順

ワークフローの設定

ワークフロー作成時に「Webhookワークフロー」というものが増えています。
というかそれ以外にも沢山増えています。すごい。

image.png

絵文字リアクションも気になりますが、今回は Webhookを選択。

image.png

変数の機能が凄い

Webhookで受け取るパラメータ名を自分自身で決めることができます。
ここで作った変数を、アクション時のメッセージに利用することができます。

image.png

変数の「データタイプ」は2020年2月25日現在では

  • テキスト
  • Slackユーザーのメールアドレス
  • SlackユーザーID

の3種です。後ろ2つを指定した場合、この後のメッセージの送信先に選択することもできます。すごい。

今回は開発環境に流れ続けているダメクエリの検知 を作成しようと思うので、

  • query_info
  • query_time

というパラメータを設定しました。

設定完了画面

image.png

↑なんと、ご丁寧にJSON形式のサンプルまで用意してくれます。

ステップの追加:メッセージを送信

用意したパラメータを以下のような感じで差し込むことができます。
image.png

Slackのメッセージフォーマットで編集できるのがとても便利です。

ボタンってなんぞ

ワークフローに対してボタンを用意することが出来ます。
これはクリックされると、クリックしたユーザー名が「押しました」と明記され、次のステップのアクションを実行することができ、今回のような用途にもうってつけです。

image.png

↓ボタンを押したらスレッドにメッセージを投稿、が便利過ぎますね。

image.png

できた

以上で作成完了です。公開ボタンを押します。かんたん!!

image.png

この完了画面からコピーできるURLに対して、Content-Type:application/jsonでPOST通信をすれば通知されます。

実際に通知して見る(コマンドライン)

curl -H 'Content-Type:application/json'  -d '{  "query_info": "select * from no_index_fulljoina inner join no_index_fulljoinb",  "queri_time": "711"}'  https://hooks.slack.com/workflows/略

2020年2月25日現在だと、用意したパラメータはすべて必須となるようです。

image.png

所感

既に声が出るくらい便利なのですが、今後更に便利になっていく事を予感させます。
通知したいデータと、Slackへ通知するメッセージのフォーマット管理を切り離せるのも便利ですし、それをワークフローで画面から出来るのも便利です。
また、シンプルに変数に対してテキストを送信するだけなのでエラーにもなり辛く、敷居が低いのもポイントかなと思います。社内活用が進みそうです。

17
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?