Node-REDからkintoneのレコードを操作するノード(node-red-contrib-kintone)を作った
Blog
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にもレコードが登録されています。