Node-RED から kintone のレコードを操作するノード(node-red-contrib-kintone)を作った
Posts
Node-RED から kintone のレコードを操作するノード(非公式)を作成しました。
この記事では、node-red-conrib-kintone(以降、kintone ノード)の追加方法と、利用例を説明します。
kintone ノード
kintone ノードでは、kintone レコードを取得(GET)、登録(POST)または更新(PUT)ができます。
ノードのプロパティで、kintone 環境の情報、操作するメソッドやリクエストパラメータを指定します。下図は、メソッドが GET の場合のプロパティです。
内部的には、kintone REST API の /k/v1/records.json
を呼び出しているため、ノードに指定するプロパティは、次の API 仕様にしたがっています。
kintone への接続情報(ドメイン、kintone のログイン名、ログインパスワード)は、ノードの鉛筆マークから設定します。
kintone ノードの追加方法
公式のノードの追加にあるとおり、次のいずれかの方法で追加します。
Node-RED の画面から追加
- 右上のメニューをクリックし、[パレットの管理]を選択します。
- [ノードを追加]タブをクリックし、「kintone」と検索します。
- 「node-red-contrib-kintone」の[ノードを追加]ボタンをクリックします。
- 確認ダイアログが表示されるので、[追加]ボタンをクリックします。
npm install で追加
Node-RED のユーザーディレクトリ(~/.node-red
)にインストールします。
cd ~/.node-red
npm install node-red-contrib-kintone
利用例(POST)
定期的にセンサから取得した値を kintone へレコード登録するフローを作成します。
完成イメージ
フローの大まかな流れは下図のとおりです。
- Node-RED の http request ノードで、センサの REST API を実行し、センシングデータを取得する。
- 取得したセンシングデータを kintone のレコード形式に整形する。
- kintone ノードを使って kintone に POST する。
フローの作成
次のノードをエディタ上に追加します。
ノード 概要 inject(タイムスタンプ) ノードが発火するタイミングを指定する。今回は定期実行なのでタイムスタンプノードを用いる。 http request センサのデータを取得するため、REST API を実行するノード。 function 「http request」で取得したデータを kintone レコード一括登録 API のリクエストパラメータ(records)に整形する。 kintone 「function」で整形したデータを kintone に登録する。 debug(msg.payload) kintone からのレスポンス結果をデバッグ出力する。 それぞれのノードを次のように設定します。
inject(タイムスタンプ)
プロパティ 値 ペイロード 日時 繰り返し 指定した時間間隔、日時。時間間隔、曜日、時間は任意。 http request
プロパティ 値 メソッド GET URL センシングデータを取得する API 認証 API の認証方式に従う 出力形式 JSON オブジェクト function
プロパティ 値 コード 下記参照。 データが入っているオブジェクトはセンシングデータを取得する API の仕様によるので API の仕様に合わせること。重要なのは、次の 2 つです。
msg.payload
が kintone レコード一括登録 API のリクエストパラメータ(records)の形式になっていることreturn msg
でmsg
の内容を次の kintone ノードに渡していること。
var date = new Date(); var sensor = msg.payload.<データオブジェクト>; msg.payload = [ { "date": { "value": date}, "temp": { "value": sensor.temp }, "co2": { "value": sensor.co2 }, "humid": { "value": sensor.humid }, "dust": { "value": sensor.dust} } ]; return msg;
kintone
プロパティ 値 設定 ノードの鉛筆マークから、追加したい kintone の環境を設定する メソッド POST アプリケーション ID データを登録する kintone のアプリケーションID レコード 空の場合、前のノードの msg.payload
の値を用いるので、空白にするデバッグ
プロパティ 値 対象 msg.payload 出力先 デバッグウィンドウ
ノードを下図のように接続します。
右上の[デプロイ]ボタンをクリックしてデプロイします。
動作確認
inject
(タイムスタンプ)ノードの[■]ボタンをクリックして実行します。- 実行後、レスポンスがデバッグウィンドウに表示されます。
kintone にもレコードが登録されています。