Bulk-Write JSON Data
使用单个 HTTP POST 以 JSON 格式将多个条目写入通道
描述
为了节省设备电量或组通道更新,您可以使用批量更新 API。使用批量更新 API 时,您会随着时间的推移收集数据,然后将数据上传到 ThingSpeak™。要以 CSV 格式写入数据,请参阅 Bulk-Write CSV Data。要写入单个条目,请参阅 Write Data。
注意
如果您将 React App 中的 Test Frequency 设置为 On Data Insertion,则当 Condition Type 与 Condition 匹配时,即使 Condition 匹配多次,您的 React 也只会在每次批量写入请求中触发一次。
请求
HTTP 方法
POST
URL
https://api.thingspeak.com/channels/<channel_id>/bulk_update.json
URL 参数
| 名称 | 描述 |
|---|---|
| (必填)感兴趣通道的通道 ID。 |
URL 示例: https://api.thingspeak.com/channels/999990/bulk_update.json
主体参数和对象成员
批量 JSON 写入操作的主体是一个 JSON 对象,其成员和数组列在这些表中。
| 名称 | 描述 | 值类型 |
|---|---|---|
write_api_key | (私有通道必需)指定此特定通道的写入 API 密钥。您可以在通道视图的 API Keys 选项卡上找到写入 API 密钥。 | 字符串 |
updates | (必需)指定您的通道的更新数组。 | JSON 对象数组,其成员如 更新 所示 |
更新是 JSON 对象的 JSON 数组,每个对象均具有以下键值对。
| 名称 | 描述 | 值类型 |
|---|---|---|
created_at | (除非包含 | 字符串 |
delta_t | (除非包含 | 字符串 |
field | (可选)字段 X 数据,其中 X 是字段 ID | 任何值 |
latitude | (可选)纬度(以度为单位),指定为 | 数值 |
longitude | (可选)经度(以度为单位),指定为 | 数值 |
elevation | (可选)海拔(以米为单位) | 字符串 |
status | (可选)状态字段输入的消息 | 字符串 |
Content-Type
application/json
主体格式
{
"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"
}
]
}限制
单次批量更新的消息数量限制为:免费帐户用户为 960 条消息,付费帐户用户为 14,400 条消息。连续批量更新调用之间的时间间隔应为 15 秒或更长。
MQTT 订阅不会将批量写入操作的更新报告给通道。
更新数组中的所有对象必须使用相同的时间格式。
所有时间戳必须是唯一的。如果您提交重复的时间戳,您的所有更新都会被拒绝,否则只有通道中已有时间戳的更新才会被拒绝。



