主要内容

批量写入JSON数据

用一个HTTP POST将多个条目以JSON格式写入通道

描述

为了节省设备电量或分组通道更新,可以使用批量更新API。当使用批量更新API时,您可以随着时间收集数据,然后将数据上传到ThingSpeak™。如需写入CSV格式的数据,请参见批量写入CSV数据.要编写单个条目,请参见写入数据

请注意

如果你设置反应的应用测试频率设置为关于数据插入时,每个大容量写请求只触发一次React条件类型匹配条件,即使条件被匹配不止一次。

请求

HTTP方法

帖子

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

主体参数和对象成员

大容量JSON写操作的主体是一个JSON对象,其成员和数组列在这些表中。

的名字 描述 值类型
write_api_key

(私有通道必需)为该特定通道指定写API密钥。上的“写API密钥”API密钥通道视图。

字符串

更新

(必选)指定频道的更新数组。

中所示成员的JSON对象数组更新

更新

更新是一个JSON对象的JSON数组,每个JSON对象都有以下键值对。

的名字 描述 值类型
created_at

(要求,除非delta_t事件的绝对时间在ISO 8601, EPOCH,或MYSQL格式。时间戳在通道内必须唯一。

字符串
delta_t

(要求,除非created_at指定从最后一个条目经过的秒数delta_t.值delta_t不能为零,数组中的第一个值除外。

字符串
< X >

(可选)字段X数据,其中X为字段ID

任何

纬度

(可选)纬度(以度为单位),指定为between的值-90年而且90

数量

经度

(可选)以度为单位的经度,指定为之间的值-180年而且180

数量

海拔高度

(可选)标高,单位为米

字符串

状态 (可选)状态字段输入消息 <字符串>

内容类型

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 ", "纬度":纬度值","Longitude": "Longitude", "Elevation": ELEVATION_VALUE, "Status": "STATUS_STRING"}, {"created_at": "DATETIME_STAMP", "field1": "FIELD1_VALUE",等等…}]}
指定时间格式created_at
{“write_api_key”:“write_api_key”,“更新”:[{“created_at”:“-0500 10:26:2 2018-01-30”,“field1”:“1.0”,“field2”:“2.0”},{“created_at”:“-0500 11:27:27 2018-02-02”,“field1”:“1.1”,“field2”:“2.2”,“状态”:“做得好”}]}
指定时间格式delta_t
{“write_api_key”:“write_api_key”,“更新”:[{“delta_t”:4,“field1”:1.0,“field2”:“2.0”},{“delta_t”:2,“field1”:1.1,“field2”:2.2,“海拔”:6,“状态”:“好”}]}

响应

成功

HTTP状态码

200好了

身体

响应是一个表示成功的JSON对象:

{"success": true}

错误

有关完整列表,请参见错误代码

限制

  • 单个批量更新中的消息数量对免费帐户的用户限制为960条消息,对付费帐户的用户限制为14,400条消息。连续的大容量更新调用之间的时间间隔应该是15秒或更长。

  • MQTT订阅不向通道报告来自大容量写操作的更新。

  • updates数组中的所有对象必须使用相同的time格式。

  • 所有时间戳必须是唯一的。如果您提交重复的时间戳,则所有更新都将被拒绝,否则只有时间戳已经在通道中的更新才会被拒绝。

例子

全部展开

你可以配置邮递员尝试RESTful API调用。要使用JSON对象发送一个HTTP POST请求来批量更新通道提要,配置POSTMAN,如下所示:

  1. 选项卡,设置内容类型作为application / json

  2. 设置身体的请求JSON对象,并在POSTMAN中输入JSON对象。

    完整POST的格式如下所示。

    POST /渠道/ 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": "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": "alimony", "field6": 100, "field7": 100, "field8": 100, "status": "good"}, "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 /渠道/ 999900 / bulk_update。json HTTP / 1.1主持人:api.thingspeak.com - type: application / json{“write_api_key”:“XXXXXXXXXXXXXXXX”,“更新”:[{“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对频道的一次调用中发布的6个值。