Webhook と Thunderbus で超便利!

kintone Webhook 企画 第3弾

本当はこの記事を最初に書いていたのですが、やっているうちに LINE 連携が楽しくなってきたてこの記事は3番目になりました。

同じネタで1日に3つも記事を上げると「お前どんだけ Webhook 好きなんだよ」と突っ込まれそうですが、いくら突っ込まれてもいいぐらい Webhook の搭載が楽しみでした。

一緒に書いた2つの記事はこちらからどうぞ。

 Webhook を使って kintone から LINE にメッセージを送る

 kintone と LINE でおしゃべりする

kintone Webhook + DataSpider

なぜ私がそんなに Webhook を楽しみにしていたかというと、DataSpider を開発・販売している私達にとって kintone の Webhook 搭載は両製品の用途をより広げる良いチャンスになるからです。

Webhook と DataSpider を組み合わせると「kintone に登録されたデータを他システムにリアルタイムに反映する」ことができるようになります。

これだけだと 「Zapier と何が違うんだ?」と思われる方もいらっしゃるかもしれませんが、ブラウザを閉じるのはちょっと待ってください。

Zapier は Web サービスとの連携に強いですが、DataSpider のように社内の基幹系システムとの連携はさほど多くの機能を持っていません。DataSpider は 2,900社を越えるユーザーの大多数が社内の基幹系システムの連携で使われており、実際に中野製薬様のように kintone と AS400 を組み合わせる目的で使われていたりします。簡単な Gmail 送信や Slack への送信などであれば Zapier で良いかもしれませんが、基幹システムとの連携となるとそうはいきません。そこで DataSpider の出番です。

連携の仕組み

DataSpider では「HTTP トリガー」という HTTP リクエストを受け取ったら、それを契機に連携処理を行う機能があります。ただし、これまでは kintone 側から DataSpider に対して HTTP リクエストを送信する方法が JavaScript によるプラグイン開発しか無かったため、少しハードルが高いものでした。しかし、この度 Webhook の搭載によりプラグインの開発が必要なくなったため、グッと敷居が下がったと思います。

f:id:dsstsukky:20170208111409p:plain

※注:「HTTP トリガー」以外でも「スケジュールトリガー」といって決められた時間(例:毎日xx時)や定期的(例:xx分おき)に連携処理を行う機能などがあるため、必ずしもプラグイン開発をしなくても、kintone と他システムの連携は可能です。kintone にレコードが登録されことを契機に他システムに連携が行いたい場合にはプラグイン開発が必要でした。

では早速試してみましょう。 今回はシンプルに受信したデータをオンプレミスデータベース(例:Access)に書き込む処理を作ります。 使うアプリはこんなイメージ。一般的な案件管理アプリケーションです。

f:id:dsstsukky:20170210191536j:plain:w450

書き込む先の DB はこちら。

f:id:dsstsukky:20170210222313j:plain

そして、DataSpider 側で作ったスクリプトはこんなイメージ。とってもシンプルですね。kintone で受信したデータをデータベースのカラムに合わせて加工して INSERT するだけです。

f:id:dsstsukky:20170210222155j:plain:w450

HTTP トリガーの設定を行って DataSpider の設定は完了です。黒く塗りつぶしたところは DataSpider の IP アドレスが書かれています。

f:id:dsstsukky:20170210223634j:plain:w450

あとは kintone 側で Webhook の設定で、上記の HTTP トリガーに書かれていた URL を指定します。

f:id:dsstsukky:20170210224003j:plain:w450

早速レコードを追加してみます。

f:id:dsstsukky:20170210224207j:plain:w450

データベースの中身を確認してみますと・・・

f:id:dsstsukky:20170210222842j:plain

はい。しっかりデータベースの方にも反映されていますね。

このように、Webhook と DataSpider を組み合わせると、kintone に入力されたデータを、オンプレミスにあるシステムにリアルタイムに反映させることが可能となります。

しかもここまで一切私はプログラムを書いていないのです。

更に親和性を高める Thunderbus HTTP エージェント

ただし、これだけでは少し懸念点が残ります。

DataSpider や連携先のシステムがクラウド上にある場合さほど気にすることではありませんが、社内の基幹システムとの連携を行う場合多くのケースにおいて DataSpider は社内ネットワークに置かれており、セキュリティの面から kintone(外部ネットワーク)から DataSpider のサーバに対して HTTP(S) での通信が行なえません(= Webhook が受信できない)。

f:id:dsstsukky:20170208111540p:plain

そこで、こういった課題を解決するために生まれてくるのが Thunderbus HTTP エージェントです。既に Thunderbus (読み:サンダーバス)という製品は 2015年に販売を開始しているのですが、従来持っていたファイルエージェント機能に加えて HTTP エージェントという機能を3月にリリースします。

Thunderbus HTTP エージェントは、送信された HTTP(S) リクエストをフォワードする機能を持っており、(原理的には違うのですが)リバースプロキシのような役割を担うことができます。

Thunderbus Server をグローバル IP を持つ環境(クラウドやDMZ)に設置し、Thunderbus Agent はグローバルIP を持たない環境(社内LAN)に設置します。 この時、Server 宛に送信された特定の HTTP(S) リクエストが社内ネットワークにある Agent宛に転送されます。

f:id:dsstsukky:20170208114058p:plain

これによって、DataSpider をインターネット上に晒すことなく外部からの HTTP(S)リクエストを受け取ることができるようになり、kintone の Webhook によるデータ受信も安心して行えるようになります。

まとめ

このように、Webhook のリリースにより DataSpider を使って kintone のデータと他システムの連携をすることが更に容易になりました。また、Thunderbus と組み合わせることにより、DataSpider をインターネットに晒すこと無く連携が可能となります。これによって kintone と社内のシステムを組み合わせてより幅広い用途で活用いただけるかと思います。

宣伝

この超便利な kintone の Webhook と DataSpider + Thunderbus の組み合わせは「DataSpider Cloud 全国セミナー ~kintone 編~」にてご紹介させていただきます。少しでも興味を持っていただいた方は是非足を運んで体験してみてください。

DataSpider Clous 全国セミナー ~kintone 編~