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にもレコードが登録されています。