メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

Bulk-Write JSON Data

単一の HTTP POST で、JSON 形式で多数のエントリをチャネルに書き込む

説明

デバイスの電力を節約したり、チャネルの更新をグループ化したりするには、一括更新API を使用できます。一括更新API を使用する場合、一定期間にわたってデータを収集し、そのデータを ThingSpeak™ にアップロードします。CSV 形式でデータを書き込むには、Bulk-Write CSV Data を参照してください。単一のエントリを書き込むには、Write Data を参照してください。

メモ

React アプリTest FrequencyOn Data Insertion に設定した場合、Condition が複数回一致したとしても、Condition TypeCondition と一致すると、一括書き込み要求ごとに React が 1 回だけトリガーされます。

要求

HTTPメソッド

POST

URL

https://api.thingspeak.com/channels/<channel_id>/bulk_update.json

URLパラメーター

名前説明

<channel_id>

(必須) 関心のあるチャネルのチャネルID。

URLの例: https://api.thingspeak.com/channels/999990/bulk_update.json

Bodyパラメーターとオブジェクトメンバー

一括 JSON 書き込み操作のbodyは、これらの表にリストされているメンバーと配列を含む JSON オブジェクトです。

名前説明値のタイプ
write_api_key

(プライベートチャネルの場合は必須) この特定のチャネルの書き込み API キーを指定します。書き込み API キーは、チャネルビューの API Keys タブにあります。

string

updates

(必須)チャネルへの更新の配列を指定します。

更新 に示されているメンバーを持つ JSON オブジェクトの配列

更新

更新は JSON オブジェクトの JSON 配列であり、各オブジェクトには次のキーと値のペアが含まれます。

名前説明値のタイプ
created_at

(delta_t が含まれていない限り必須) ISO 8601、EPOCH、または MYSQL 形式でのイベントの絶対時間。タイムスタンプはチャネル内で一意である必要があります。

string
delta_t

(created_at が含まれていない場合は必須) delta_t を使用して、最後のエントリからの経過秒数を指定します。配列の最初の値を除き、delta_t の値はゼロにできません。

string
field<X>

(オプション)フィールドXデータ(XはフィールドID)

任意

latitude

(オプション) 緯度(度)。-90 から 90 までの値として指定します。

数値

longitude

(オプション) 経度(度)。-180 から 180 までの値として指定します。

数値

elevation

(オプション)標高(メートル)

string

status(オプション)ステータスフィールド入力のメッセージ<string>

Content-Type

application/json

Bodyの形式

{
	"write_api_key": "WRITE_API_KEY",
	"updates": [{
			"created_at": "DATETIME_STAMP",
			"field1": FIELD1_VALUE,
			"field2": FIELD2_VALUE,
			"field3": FIELD3_VALUE,
			"field4": FIELD4_VALUE,
			"field5": FIELD5_VALUE,
			"field6": FIELD6_VALUE,
			"field7": FIELD7_VALUE,
			"field8": FIELD8_VALUE,
			"Latitude": LATITUDE_VALUE,
			"Longitude": LONGITUDE_VALUE,
			"Elevation": ELEVATION_VALUE,
			"Status": "STATUS_STRING"
		},
		{
			"created_at": "DATETIME_STAMP",
			"field1": "FIELD1_VALUE",
			Etc...
		}
	]
}
時刻形式を指定してください created_at
{
	"write_api_key": "WRITE_API_KEY",
	"updates": [{
			"created_at": "2018-01-30 10:26:2 -0500",
			"field1": "1.0",
			"field2": "2.0"
		},
		{
			"created_at": "2018-02-02 11:27:27 -0500",
			"field1": "1.1",
			"field2": "2.2",
			"status": "well done"
		}
	]
}
時刻形式を指定してください delta_t
{
	"write_api_key": "WRITE_API_KEY",
	"updates": [{
			"delta_t": 4,
			"field1": 1.0,
			"field2": "2.0"
		},
		{
			"delta_t": 2,
			"field1": 1.1,
			"field2": 2.2,
			"elevation": 6,
			"status": "Good"
		}
	]
}

応答

成功

HTTPステータスコード

200 OK

Body

応答は成功を示す JSON オブジェクトです。

{
    "success": true
}

エラー

完全なリストについては、エラーコード を参照してください。

制限

  • 1 回の一括一括更新で送信できるメッセージ数は、無料アカウントのユーザーの場合は 960 件、有料アカウントのユーザーの場合は 14,400 件に制限されています。連続する一括更新呼び出し間の時間間隔は 15 秒以上にする必要があります。

  • MQTT サブスクリプションは、一括書き込み操作からのチャネルへの更新を報告しません。

  • 更新配列内のすべてのオブジェクトは同じ時間形式を使用する必要があります。

  • タイムスタンプはすべて一意でなければなりません。重複したタイムスタンプを送信すると、すべての更新が拒否されます。それ以外の場合は、すでにチャネル内にあるタイムスタンプを持つ更新のみが拒否されます。

すべて展開する

RESTful API 呼び出しを試すように POSTMAN を設定できます。JSON オブジェクトを使用してチャネルフィードを一括更新の HTTP POST要求を送信するには、次のようにPOSTMANを構成します。

  1. Headers タブで、Content-Typeapplication/json に設定します。

  2. 要求の Bodyraw JSON オブジェクトとして設定し、その JSON オブジェクトをPOSTMANに入力します。

    完全な POST の形式をここに示します。

    POST /channels/999900/bulk_update.json HTTP/1.1
    Host: api.thingspeak.com
    Content-Type: application/json
    {
    	"write_api_key": "JNWIVP3CD54ZGI9X",
    	"updates": [{
    			"created_at": "2018-01-30 10:26:2 -0500",
    			"field1": 100
    		},
    		{
    			"created_at": "2017-01-30 10:26:23 -0500",
    			"field1": "red",
    			"field2": "blue",
    			"field3": "green",
    			"field4": "fish",
    			"field5": "alimony",
    			"field6": 100,
    			"field7": 100,
    			"field8": 100,
    			"status": "good"
    		},
    		{
    			"created_at": "2018-01-30 10:26:26 -0500",
    			"field1": 1500,
    			"field2": 150,
    			"field3": 100,
    			"field4": 100,
    			"field5": 100,
    			"field6": 100,
    			"field7": 100,
    			"field8": 100,
    			"latitude": 123,
    			"longitude": 23,
    			"elevation": 34
    		}
    	]
    }
  3. 応答は成功を示す JSON オブジェクトです。

リアルタイム クロックが組み込まれていないデバイスの場合は、各エントリに相対的なタイムスタンプを提供できます。各エントリは delta_t で始まり、前回の測定からの時間を秒単位でリストします。

POST コードを入力してください。正確なプロセスと形式はクライアントによって異なります。

POST /channels/999900/bulk_update.json HTTP/1.1
Host: api.thingspeak.com
Content-Type: application/json
{
	"write_api_key": "XXXXXXXXXXXXXXXX",
	"updates": [{
			"delta_t": "0",
			"field1": 100
		},
		{
			"delta_t": "2",
			"field1": "200"
		},
		{
			"delta_t": "1",
			"field1": 103
		},
		{
			"delta_t": "2",
			"field1": "23"
		},
		{
			"delta_t": "1",
			"field1": 86
		},
		{
			"delta_t": "5",
			"field1": "201"
		}
	]
}

最後のエントリには、要求が送信された時刻のタイムスタンプが含まれます。相対タイムスタンプを持つ要求内の各更新は、最後のエントリから時間的に遡って減算されます。要求への応答は成功を示す JSON オブジェクトです。

{
    "success": true
}
18:05:37 にチャネルへの 1 回の呼び出しで投稿された 6 つの値がプロットに表示されます。