Raspberry Pi から kintone にデータを書き込む
Raspberry Pi(Node-RED)から、kintone へAPI経由でアプリにデータを書き込みます。
今回は、以下の2つのフィールドを持つアプリを作成し、Raspberry Pi(Node-RED)からデータを書き込みます。
・日時
・文字列(1行)
kintone アプリの作成
kintone にアプリを作成します。
今回は、「はじめから作成」にて作成します。
フィールドの設定
以下の2つのフィールドを配置します。
・日時
。文字列(1行)
フィールドコードを以下のように変更します。
フィールド | フィールドコード |
---|---|
日時 | date |
文字列(1行) | data |
APIトークンの作成
APIトークンを作成します。
アプリの[設定]から[APIトークン]を選択します。
REST APIのエンドポイントやアプリIDを確認します。
項目 | 確認箇所 | 例 |
---|---|---|
エンドポイント | https:// から record.json まで | https://<ドメイン名>/k/v1/record.json |
アプリID | app= の後の数値 | 1 |
[生成]を選択し、APIトークンを生成します。
また、[レコード追加]のアクセス権を付与し、保存します。
最後に、アプリを公開します。
Raspberry Pi(Node-RED)の設定
日時と文字列を HTTP Request にて kintone に送信します。
フィールド形式の仕様は以下に掲載されています。
フィールド形式 – cybozu developer network
送信するデータの作成(functionノード)
「日時」と「文字列(1行)」のデータを作成します。
・日時
日時は以下の形式に成形ます。
YYYY-MM-DDTHH:MM:SSZ
・文字列(1行)
「データ」と記します。
var getCurrentTime = function () {
var date = new Date();
date.setHours(date.getHours() - 9);
var d = date.getFullYear() + '-';
d += ('0' + (date.getMonth() + 1)).slice(-2) + '-';
d += ('0' + date.getDate()).slice(-2) + 'T';
d += ('0' + date.getHours()).slice(-2) + ':';
d += ('0' + date.getMinutes()).slice(-2) + ':';
d += ('0' + date.getSeconds()).slice(-2) + 'Z';
return d;
};
msg.date =getCurrentTime() ;
msg.data ="データ";
return msg;
JSON body の作成(functionノード)
作成した送信するデータをJSON形式にします。
"app"には、APIトーク生成時に確認したアプリIDを記載します。
var payload={
"app":"1",
"record":
{
"date":{"value": msg.date },
"data": {"value": msg.data }
}
}
msg.payload=payload;
return msg;
APIトークン の設定(templateノード)
APIトーク生成時に確認したAPIトークンを設定します。
| 項目 | 設定値 |
|:--|:--|:--|
| 設定先 | msg.headers.X-Cybozu-API-Token |
| 形式 | Mustacheテンプレート |
| テンプレート | <APIトークン> |
| 構文 | なし |
データの書き込み(http requestノード)
APIトーク生成時に確認したエンドポイントを設定します。
| 項目 | 設定値 |
|:--|:--|:--|
| メソッド | POST |
| URL | <エンドポイント> |
| 出力形式 | JSON |
データの書き込み
inject し、データの書き込みが成功すると、http requestノードからデータレコードのIDが出力されます。
{ id: "1", revision: "1" }
kintone にデータが書き込まれました。