こちらはLINEWORKSアドベントカレンダー2024参加の記事です!
みなさんはIncomming Webhookアプリ、もう試しましたか?
Incomming Webhookはトークルームへ簡単に通知を送ることができるURLを発行できるサービスです。
定型のPOSTメッセージを送るだけで、通知が発行できちゃいます!
ぼくはこの機能を利用して、kintoneからトークルームへ通知できるプラグインを作成してみました。
LineWorksルーム通知プラグイン
プラグインはこちらからダウンロードできます。(無料で配布してます)
セットアップ方法も解説しています。
ぜひ試してみてください!
LWTTで教えてもらいました
11月に名古屋で開催されたLWTT(LineWorks Tech Talk)で、IncommingWebhookを教えていただきました。これがkintoneの機能にぴったりだったので、kintoneのプラグインを作ろうと思い立ちました。
やろうと思ってもきっかけがないとできないと思ったので、アドベントカレンダーにも登録させていただきました。ちゃんと発表できてよかったです。
Incomming Webhookは素晴らしいです。それまで、LineWorksとの連携はOAuthによる連携が必須だったので、サーバーが必ず必要でした。Incomming WebhookはURLへのPOSTのみで成立させられるので、とても手軽に連携ができました。
プラグインの機能の裏技
ここからはLineWorksルーム通知プラグインでできる機能をご紹介します。
メッセージ内容を見てください。
こちらはテンプレートエンジンに Handlebars を利用していますので、Handlebarsでの記法をそのまま利用できるようになっています。
「kintoneのデータが更新されました!」といったメッセージのみでも十分有用だと思いますが、kintoneのレコードデータを利用することで、詳しいメッセージになったり、メンションに利用したりといったことができます。
レコードデータの利用
{{更新者.value.name}}
👆はkintoneレコードの更新者の名前を取得しています。
{{文字列一行.value}}
👆は文字列一行のレコードデータを利用した記法です。
組み込み関数の利用
{{now "HH:mm"}}
👆は現在日時の時間と分を表示しています。
{{date 更新日時.value "HH:mm"}}
👆はkintoneレコード内の【更新日時】フィールドのデータから時間と分を表示しています。
now, dateはHandlebarsにはない、LineWorksルーム通知プラグイン専用の組み込み関数として用意しています。
Handlebarsに組み込まれたeachなどの関数を利用することで、サブテーブルの展開などができます。
メンション
LineWorksへのメンションは
<m userId="{userId}">
の形式であれば、メッセージ内容に組み込まれていればできます。
なので、【メンション】の項目にIDを設定しなくても、kintone上にデータがあればテンプレート機能でメンションを動的に生成できます。
{{#if メンション.value}}
<m userId={{メンション.value}}>
{{/if}}
👆はメンションという文字列フィールドに値が入っていれば、メンションするというテンプレートです。
まとめ
今回はIncomming Webhookを利用したkintoneプラグインを作ってみました。
LineWorks-kintone連携は実はたくさんのサービスがあります。
ただ、IncommingWebhookを利用すれば、限定された用途なら、もっと手軽に開発ができてしまいます。
簡単な通知であればトライしてみてはいかがでしょうか?
プラグインの開発、とっても楽しかったです😊
この記事は以上です。ありがとうございました。
kintoneのプラグイン開発や研修などを行っています。
お仕事のお話はこちらまで。