Main Content

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

Bulk-Write JSON Data

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

説明

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

メモ

React appを設定し、 Test FrequencyOn Data Insertionに設定すると、React はTG が実行されたときに一括書き込み要求ごとに 1 回だけトリガーされます。 Condition Typeは、 Condition が複数回一致した場合でも、 Condition と一致します。

要求

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 キーを指定します。Write 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(オプション) ステータスフィールド入力のメッセージ<文字列>

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

本文

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

{
    "success": true
}

エラー

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

制限

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

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

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

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

すべて展開する

POSTMANを構成して、RESTful API 呼び出しを試すことができます。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 つの値がプロットに表示されます。