- はじめに
- 覚えてほしいこと
- やりたいこと - KNIMEからTeamsに通知を送る
- 事前に押さえておきたいポイント
- Teams で通知URL (Incoming Webhook URL)を取得するには?
- Post Requestの使い方
- ちょっと一言
- おわりに
- KNIMEに関する本
- 参考リンク
はじめに
こんにちは、自動化大好きまっきーです。記念すべき100記事目前となりました。
今回はAdvancedな内容となりますが、実用性のあるであろう内容をご紹介します。
皆さんが実務においてKNIME Workflowを作って作業を自動化した後、それらの単純作業をKNIME Serverで定期実行したり、デスクトップで自動実行したり、もしくは他の誰かに作業を依頼したり、、、
自分で作ったワークフローを直接動かさないことも増えてくると思います。そうすると一つ不安なことありませんか?
「本当に実行されているのだろうか。。。エラーは発生してないだろうか。。。」
これで毎回実行の進捗を確認するステップを追加したらせっかくの自動化したのに作業を追加したことになってしまいます。それは避けたいですよね。
そこで、今回はKNIMEが実行完了したことを自動で通知する方法をご紹介します。通知の自動化はMicrosoft PowerAutomateやIFFT、Zapierなどのツールが得意としますが、Power Automate等を使用せずとも通知を送ることができる技術となります。
今回はMicrosoft Teamsを例に説明しますが、同じようにSlack等にも適用できます。
今回のテーマ ~Post Request / Webhook~
覚えてほしいこと
Incoming WebhookはPost Requestを元に通知を流す技術
やりたいこと - KNIMEからTeamsに通知を送る
Workflowが実行完了したあと、Teamsの通知用チャネルに実行完了通知を自動で投稿する
「KNIME Training」 というTeamsのグループの「通知テスト」というチャネルに実行通知を流そうと思います。
事前に押さえておきたいポイント
覚えて欲しい用語をこちらにリストアップしておきます。分からないなーという方はリンクを参照ください。まあ分かってなくても使えますけど笑
Get RequestとPost Requestの違い / JSONというデータ形式について
以前Get RequestのNode紹介でご紹介したかと思います。
Post RequestはURLにリクエストを送るとき、データをくっ付けるリクエストでした
KNIME - APIを使ってみよう!郵便番号から住所を一括取得するには? ~GET Request / String to JSON / JSON to Table~ - デジタル推進課
Incoming Webhookとは?
Incoming WebhookとはPost Requestを元に通知を流す技術です。
Post RequestでJSON形式のデータを含ませます。Incoming Webhookは、そのJSON形式のデータを元に、通知の内容を汲み取り通知を流すことができます。
Teamsだけではなく、Slack, Gmailなどなど様々なサービスでこの技術を使うことができます。
Teams で通知URL (Incoming Webhook URL)を取得するには?
事前準備として、TeamsでWebhookのURLを取得する必要があります。
参考:Webhook URL取得方法(Microsoft Teams)
Slack等のツールの場合は、「Slack Webhook」でURLを取得する方法を検索してみてください。例:SlackのWebhook URL取得手順 - Qiita
今回は、Teamsの場合でWebhookを設定する手順について解説します。
KNIME Training というTeamsのグループの「通知テスト」というチャネルに実行通知を流そうと思います。
Step1 - 通知を送りたいチャネルのコネクタ オプションを開く
まずは、通知を送りたいチャネルのコネクタオプションを開きます。
Step2 - コネクタ一覧からWebhookを検索、構成
次に数あるコネクタの中からIncoming Webhookを検索し、構成ボタンを押します。
Step3 - 通知用の名前とアイコンを設定
次に通知用の名前とアイコンを設定しましょう。アイコンは任意です。
これは、通知の投稿の下図の部分になります。
Step4 - URLをコピー
URLが出てくるので、コピーしましょう。このURLを使います。
これで完了です。とても簡単ですよね。
設定を再度変更したい場合は。。。
もし再度設定を変更したい場合は、同じようにコネクタから検索してください。
すでに構成が完了しているので、「構成済み」をクリックすると先ほど設定したものが見えるようになっています。管理をクリックすると設定変更が可能です。
Post Requestの使い方
Post Requestを送信するNodeです。
Workflow - Post Request
今回はものすごく寂しいWorkflowにしました。Post Requestはこれ単体で動くことができます。Inputは白い矢印になっているので、任意です。
実行完了通知の場合はWorkflowの最後にこのPost Requestを繋げば使えますね。
Workflowは下記リンクからダウンロードできます。
Confirm
実行が完了すると、即座にTeamsに投稿されます。もちろんネット環境が必須です。
Configure - Post Request
もちろんPost RequestのNodeの機能自体は多いのですが、今回はTeamsの通知に必要な部分のみ解説します。
Step1 - Connection Settings - URLの設定
先ほど取得したURLを設定しましょう。
Get Requestと同じく、URLはInputのTableから指定することもできます。
Step2 - Request Body - JSON形式で通知内容を指定
次にRequest BodyにJSON形式のデータを記載します。もちろんInput TableからJSON形式のコラムを指定してもいいです。
今回はこのようなJSONを記述しました。
ちょっと一言
Webhook投稿の見栄え良くするには? JSON Markdown
先ほどのJSONには、装飾用のコードがいくつか含まれています。それぞれの意味を実際の通知画面と照らし合わせながら理解していきましょう。
こちらのサイトを参考にさせていただきました。
Teams incoming webhook で使う JSON Markdown - poke_dev’s blog
1. JSONのタグの意味
見た目の通り、
title --> タイトル
text --> 内容
です。タイトルは改行等はできません。textにあたる本文は装飾が可能です。
2. 太字にする
太字にする場合は、**で太字にしたい部分を囲みます。空白を含まないようにします。
3. 改行パート1
改行をしたい場合、半角スペース2つに「\n」です。
4.改行パート2
<br>タグでも改行できます。今回は2個入れて2回改行してます。
5. リンクをつける
リンクをつけるには[]でテキスト部分、()でURL部を指定します。
おわりに
お疲れ様でした。細かく解説しましたが、分かったでしょうか。
設定内容自体は簡単ですが、かなりパワフルですよね。ぜひ実務で使ってみてください!
今後も本ブログをよろしくお願いします。また、ぜひ様々な方にShareいただけると幸いです。こんなこと知りたい・やってほしいなど、要望あればぜひお問い合わせいただければと思います。
余談
久しぶりにAmazon Primeの映画紹介。
まさかこれが実話とは、、、というようなお話。スキーでオリンピックを目前にしていた人が、セレブ専用のポーカーゲームの経営者になるという意味分からない経歴の持ち主の実話です。色々感動ポイントありますが、そもそもこの話が実話であるという驚きと、このモーリーの頭の良さがすごい。弁護士との駆け引きもいい。
緊急事態宣言も延長されましたし、この機会にぜひ。
KNIMEに関する本
KNIMEに関する日本語の本って今これくらいしかないと思うんですよね、、
本がいいなーと言う人はぜひ試してみてください。
参考リンク
- Teams Webhook設定方法:
- TeamsのWebhook JSONについて:
- Node Pit(英語):
- KNIME Example Workflow(英語):