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

ついに来た! Webhook

2017/2/12 の定期メンテンナンスにて、kintone のアップデートが行われ Webhook の機能が実装されました。

主要なアップデート(2017年2月) | 製品情報 | ファストシステムを実現したクラウドサービス「kintone」

これにより kintone のレコードへの[追加][更新]、[ステータスの変更]が行われた際に、他の Webサービスに通知を行うことができるようになりました。

f:id:dsstsukky:20170208111031p:plain

アップデートに先駆けて Cybozu developer network で Webhook に関する記事が公開されています。私にとっても Webhook は本当に楽しみで誰よりも早く記事を書こうとアップデート公開前から準備していたですが、まさかリリース前に記事が出てしまうとは・・・

悔しさと勢いで 3つ記事を書きました。まずは簡単に kintone から LINE にメッセージを送るという内容になります。

他の記事はこちら

  kintone と LINE でおしゃべりする

  Webhook と Thunderbus で超便利!

サイボウズさんの記事では Zapier を使って連携する例が書かれています。確かに Zapier を使えば JSON の型変換ができ、いくつかのサービスに連携できます(Slack や Gmail など)。しかし、Zapier の連携先(Action)には日本人の大好きな LINE がありません!

f:id:dsstsukky:20170210183207j:plain

なんということでしょう・・・kintone から LINE への通知はダメなのか・・・

悲しむことはありません。連携先に柔軟な DataSpider があるじゃないか。 ということで、早速作っていきます。

やりたいこと

使うアプリはこれです。アプリストアにある「迷子・落し物管理アプリ」を簡易にしたものです。

f:id:dsstsukky:20170210174132j:plain:w450

この kintone アプリに書き込まれた内容を LINE に通知したいと思います。

別の記事ではオンプレミスにある基幹システムとの連携を行うためパッケージ版の DataSpider を使っていますが、今回は API 連携ということで 2017/1/22 にリリースされたばかりの DataSpider Cloud を使って開発していきます。

スクリプト作成イメージ

設定は簡単です。

まずは kintone からデータを受信する部分ですが、XML 型の変数を作ります。ここに Webhook で送信されたデータが入ってきます。

f:id:dsstsukky:20170210091658j:plain:w450

続いて、LINE への送信設定を行います。LINE Messaging API のページを見ると、Curl コマンドでの送信例がありますのでこれを参考にします。

f:id:dsstsukky:20170131224132p:plain:w450

これを DataSpider の設定に落とし込むと以下の通りとなります。

まずはアクセス先の LINE Messaging API の URL 設定をグローバルリソースで行います。

f:id:dsstsukky:20170210092128j:plain:w450

続いて、RESTアダプタ(POST)の必須設定で基本的な設定を行います。上記グローバルリソースの URL と「パス」に書いた文字列を合わせた文字列がアクセス先のURL となります。

f:id:dsstsukky:20170210091906j:plain:w450

リクエスト設定では送信するデータの形式を選択します。

f:id:dsstsukky:20170210091919j:plain:w450

ヘッダ設定では Content-Type と Authorization(LINE@Manager で取得したChannel Access Token)を設定します。

f:id:dsstsukky:20170210091926j:plain:w450

そして後回しにしていた JSON 部分の設定を行います。

f:id:dsstsukky:20170210175341j:plain:w450

画面の右側に表示されているのが LINE Messaging API に送信するデータの構造、左側が kintone から Webhook で送信されてくるデータの構造です。実際にはいずれも JSON でやり取りするのですが、DataSpider では内部的に XML に変換しており、このように表示されています。

アイコンがいくつか並んでいるのは、単純に kintone のレコードに登録されたデータを送信しても文字の羅列で見づらいので助詞を補ったりするのとともに、日付を UTC から JST に変換したりしています。

スクリプトの設定は以上です。最後に、kintone が Webhook を送信する先である HTTP トリガーの設定を行います。

f:id:dsstsukky:20170210175537j:plain:w450

パッケージ版の DataSpider の場合は上記設定でお終いですが、DataSpider Cloud は管理画面でも設定を行い、ここに表示される URL にクエリパラエータ認証を加えたものが Webhook で指定する URL となります。

f:id:dsstsukky:20170210182355j:plain:w450

この URL を kintone 側の Webhook URL として設定します。

f:id:dsstsukky:20170210182011j:plain:w450

以上で完了です。

動かしてみよう

kintone の画面でデータを入力、保存します。

f:id:dsstsukky:20170210174132j:plain:w450

すると、携帯がブルブルっと震えます。

f:id:dsstsukky:20170210174251p:plain:w300

見事に kintone に登録された内容が綺麗に整えられて LINE まで届きました。

大して難しいことをやった訳ではないのですが、自分が作った仕組みによって LINE メッセージが飛んでくるとうれしいですね。

宣伝

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

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