Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la versión original en inglés.

Bulk-Write JSON Data

Escriba muchas entradas al canal en formato JSON con un solo HTTP POST

Descripción

Para conservar la energía del dispositivo o las actualizaciones de canales grupales, puede utilizar la API de actualización masiva. Cuando utiliza la API de actualización masiva, recopila datos a lo largo del tiempo y luego los carga en ThingSpeak™. Para escribir datos en formato CSV, consulte Bulk-Write CSV Data. Para escribir una sola entrada, consulte Write Data.

Nota

Si configura React app con Test Frequency configurado en On Data Insertion, su React se activa solo una vez por solicitud de escritura masiva cuando el Condition Type coincide con el Condition, incluso si el Condition coincide más de una vez.

Pedido

Método HTTP

POST

URL

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

Parámetros de URL

NombreDescripción

<channel_id>

(Obligatorio) ID de canal para el canal de interés.

Ejemplo de URL: https://api.thingspeak.com/channels/999990/bulk_update.json

Parámetros del cuerpo y miembros del objeto

El cuerpo de la operación de escritura JSON masiva es un objeto JSON con los miembros y matrices enumerados en estas tablas.

NombreDescripciónTipo de valor
write_api_key

(Obligatorio para canales privados) Especifique la clave API de escritura para este canal específico. Puede encontrar la clave de API de escritura en la pestaña API Keys de la vista del canal.

cadena

updates

(Obligatorio) Especifique el conjunto de actualizaciones de su canal.

matriz de objetos JSON con los miembros que se muestran en Actualizaciones

Actualizaciones

Una actualización es una matriz JSON de objetos JSON, cada uno de los cuales tiene los siguientes pares clave-valor.

NombreDescripciónTipo de valor
created_at

(Obligatorio a menos que se incluya delta_t ) Hora absoluta del evento en formato ISO 8601, EPOCH o MYSQL. La marca de tiempo debe ser única dentro del canal.

cadena
delta_t

(Obligatorio a menos que se incluya created_at ) Especifique los segundos transcurridos desde la última entrada con delta_t. Los valores de delta_t no pueden ser cero, excepto el primer valor de la matriz.

cadena
field<X>

(Opcional) Datos del campo X, donde X es el ID del campo

cualquier

latitude

(Opcional) Latitud en grados, especificada como un valor entre -90 y 90.

número

longitude

(Opcional) Longitud en grados, especificada como un valor entre -180 y 180.

número

elevation

(Opcional) Elevación en metros

cadena

status(Opcional) Mensaje para la entrada del campo de estado<cadena>

Tipo de contenido

application/json

Formato del cuerpo

{
	"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...
		}
	]
}
Especificar formato de hora 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"
		}
	]
}
Especificar formato de hora 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"
		}
	]
}

Respuesta

Éxito

Código de estado HTTP

200 OK

Cuerpo

La respuesta es un objeto JSON que indica éxito:

{
    "success": true
}

Error

Para obtener la lista completa, consulte Códigos de error.

Limitaciones

  • La cantidad de mensajes en una única actualización masiva está limitada a 960 mensajes para usuarios de cuentas gratuitas y 14,400 mensajes para usuarios de cuentas pagas. El intervalo de tiempo entre llamadas secuenciales de actualización masiva debe ser de 15 segundos o más.

  • Las suscripciones MQTT no informan actualizaciones del canal a partir de operaciones de escritura masiva.

  • Todos los objetos en la matriz de actualizaciones deben usar el mismo formato de hora.

  • Todas las marcas de tiempo deben ser únicas. Si envía marcas de tiempo duplicadas, se rechazarán todas sus actualizaciones; de lo contrario, solo se rechazarán las actualizaciones con marcas de tiempo que ya estén en el canal.

Ejemplos

expandir todo

Puede configurar POSTMAN para probar llamadas API RESTful. Para enviar una solicitud HTTP POST para actualizar de forma masiva el feed de un canal utilizando un objeto JSON, configure POSTMAN como se muestra:

  1. En la pestaña Headers , establezca Content-Type como application/json.

  2. Establezca el Body de la solicitud como un objeto JSON raw e ingrese el objeto JSON en POSTMAN.

    El formato del POST completo se muestra aquí.

    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. La respuesta es un objeto JSON que indica éxito.

Para dispositivos sin un reloj de tiempo real incorporado, puede proporcionar una marca de tiempo relativa para cada entrada. Cada entrada comienza con delta_t y enumera el tiempo en segundos desde la medición anterior.

Ingrese el código postal. El proceso y el formato exactos varían según su cliente.

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"
		}
	]
}

La última entrada tiene la marca de tiempo del momento en que se envió la solicitud. Cada actualización en la solicitud con marcas de tiempo relativas disminuye hacia atrás en el tiempo desde la última entrada. La respuesta a la solicitud es un objeto JSON que indica éxito.

{
    "success": true
}
En el gráfico se muestran los seis valores publicados en una llamada al canal a las 18:05:37.