sending a JSON string
Douglas Ruisaard
dougr at telus.net
Tue Oct 16 16:12:59 EDT 2018
I'll start by apologizing for my abysmal familiarity with HTTP, JSON, and URL's ... I'm hoping someone will have pity and give me a hand!
I am trying to send a "command" to a ThingSpeak channel, which is very successfully receiving data from a simple little ESP8266 module. Periodically, I need to clear the data from this channel. I want to do so from LC.. NOT the ESP8266. I just can't seem to "coordinate" the instructions from the ThingSpeak site to DELETE this data (not the channel, just the data within) with an LC function / code.
The link to the ThingSpeak page I am referring to is:
https://www.mathworks.com/help/thingspeak/clearchannel.html?searchHighlight=delete%20channel%20data&s_tid=doc_srchtitle#d120e16923
but in essence, I interpret the content to assert the following:
Access the following URL: "https://api.thingspeak.com/channels/564256/feeds.json" where "564256" is the channel I wish to clear.
Send the JSON "command": "DELETE https://api.thingspeak.com/channels/564256/feeds.json
api_key= EQKTUQQKVH83D1RE"
where "EQKTUQQKVH83D1RE" is my account api-key for writing to the ThingSpeak channel
if successful, ThingSpeak responds with: "[]" ... an empty JSON array
In LC, I've tried the following (and several variations):
on mouseUp
put empty into field "Output"
put "https://api.thingspeak.com/channels/564256/feeds.json" into tUrl
put "DELETE https://api.thingspeak.com/channels/564256/feeds.xml" & return & "api_key=EQKTUQQKVH83D1RE" into JsonCmd
-- Send a HTTP DELETE request
put tsNetCustomSync(tUrl, JsonCmd, tHeader, tResponseHeaders, tResult, tBytes) into tData
-- If this is not the case, we will inform the user
put tResult into field "Output"
end mouseUp
I get a tResult of 0 (zero) ... but the data is NOT cleared.
I have also tried the following:
on mouseUp
put empty into field "Output"
put "https://api.thingspeak.com/channels/564256/feeds.json?api_key=EQKTUQQKVH83D1RE" into tUrl
put "DELETE https://api.thingspeak.com/channels/564256/feeds.json" & return & "api_key=EQKTUQQKVH83D1RE" into tMessage["text"]
put ArrayToJSON(tMessage) into tMessage
set the httpHeaders to "Content-type: application/json"
post tMessage to url tUrl
put it into field "Output"
end mouseUp
But that only "creates" a new entry in the channel with all of the data fields empty.
I'm sure it's the way in which I am trying to send the "DELETE" command but I just can't see how to do it correctly.
I'd be grateful for any assistance.
Douglas Ruisaard
Trilogy Software
(250) 573-3935
More information about the use-livecode
mailing list