RE: sending a JSON string
let me start by apologizing for my screw up... after looking even further into many more forum responses, I found that there is YET ANOTHER key used for a DELETE ... once I put that in Andre's code... guess what? it works perfectly!!! So pat yourself on the back, Andre! and thanks ever so much! Now onto the next challenge... "bulk" uploading a whole slew of data point at once. Cheers Doug Douglas Ruisaard Trilogy Software (250) 573-3935 > > Message: 4 > Date: Wed, 17 Oct 2018 09:14:38 -0700 > From: "Douglas Ruisaard" > To: > Subject: Re: sending a JSON string > Message-ID: <125f01d46634$8249bc70$86dd3550$@net> > Content-Type: text/plain; charset="us-ascii" > > Thanks very much, Andre! I appreciate the assistance. I am sure the two > "keys" are correct as I use > them in another portion of the application (an ESP8266 module which sends > data to ThingSpeak). A > subsequent direct message from you mentioned "Charles Proxy" as an inspector > for HTML messaging. > THAT's a huge hint and I'll be installing it to see what exactly LC is > sending. > > The ThingSpeak community is very active and I'll submit a request for > assistance to it. I thought I'd > start with this forum since it is very responsive and knowledgeable... Also > my lack of good working > understanding about LC's HTML and overall web features and functions left me > thinking I was doing > something wrong in LC. With Andre's attempt generating a similar response to > what I was getting, it > helps vindicate my uncertainty about LC's ability to generate an appropriate > message to ThingSpeak. > > if I find a solution, I'll certainly let this board know. > > In the meantime, if ANYONE has any other suggestions, I'd be extremely > grateful! > > Cheers > Doug > > Douglas Ruisaard > Trilogy Software > (250) 573-3935 > > > > > Message: 3 > > Date: Wed, 17 Oct 2018 00:10:05 +0100 > > From: Andre Alves Garzia > > To: How to use LiveCode > > Cc: Douglas Ruisaard > > Subject: Re: sending a JSON string > > Message-ID: <41683bda-81ae-ac2e-1542-7d98f19ec...@andregarzia.com> > > Content-Type: text/plain; charset=utf-8; format=flowed > > > > Douglas, > > > > I am pasting some code I've built here that should do what you want > > but when I try it, it returns a > > 401 error which is an authentication error. > > On that manual page you linked there is a notice about API keys and > > Channel keys, so maybe the key on this email is not the correct one. > > This is the code (and yes, it is dead ugly): > > > > *on*mouseup > > > > *local*tHeaders, tResult > > > > *put*emptyintofld"output" > > > > *put*"Content-Type: application/x-www-form-urlencoded"intotHeaders > > > > *put*libURLFormData("api_key", "EQKTUQQKVH83D1RE") intotFormData > > > > *put*tsNetCustomUpload("1", > > "https://api.thingspeak.com/channels/564256/feeds.json";, "DELETE", > > tHeaders, "transferComplete", > > tFormData) intotResult > > > > *end*mouseup > > > > *on*transferComplete pID, pResult, pBytes, pCurlCode > > > > *local*tData, tHeaders, tResult, rError > > > > *if* pCurlCode isnot0*then* > > > > *put*tsNetRetrError(pID) & crafterfld"output" > > > > *end* *if* > > > > *put*tsNetRetrData(pID, tError) intotData > > > > *put*"Server returned:"& tData & crafterfld"output" > > > > *put*"Headers"&& tsNetRetrSentHeaders("1", rError) & crafterfld"output" > > > > *put*tResult & cr& tHeaders & cr& pResult & cr& tData afterfld"output" > > > > ?? tsNetCloseConn pID > > > > *end*transferComplete > > > > > > > > On 10/16/2018 9:12 PM, Douglas Ruisaard via use-livecode wrote: > > > 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 >
RE: sending a JSON string
It turns out that Andre's code works perfectly! It's my fault that (eventually) I discovered there is yet-another authorization key used for Thingspeak API commands which is different from the READ and Write keys I was familiar with. Once I put the correct key into Andre's code, it worked perfectly. Hopefully others can benefit from Andre's brilliant assistance! Douglas Ruisaard Trilogy Software (250) 573-3935 > -Original Message- > From: Douglas Ruisaard [mailto:do...@telus.net] > Sent: Wednesday, October 17, 2018 9:15 AM > To: 'use-livecode@lists.runrev.com' > Subject: Re: sending a JSON string > > Thanks very much, Andre! I appreciate the assistance. I am sure the two > "keys" are correct as I use > them in another portion of the application (an ESP8266 module which sends > data to ThingSpeak). A > subsequent direct message from you mentioned "Charles Proxy" as an inspector > for HTML messaging. > THAT's a huge hint and I'll be installing it to see what exactly LC is > sending. > > The ThingSpeak community is very active and I'll submit a request for > assistance to it. I thought I'd > start with this forum since it is very responsive and knowledgeable... Also > my lack of good working > understanding about LC's HTML and overall web features and functions left me > thinking I was doing > something wrong in LC. With Andre's attempt generating a similar response to > what I was getting, it > helps vindicate my uncertainty about LC's ability to generate an appropriate > message to ThingSpeak. > > if I find a solution, I'll certainly let this board know. > > In the meantime, if ANYONE has any other suggestions, I'd be extremely > grateful! > > Cheers > Doug > > Douglas Ruisaard > Trilogy Software > (250) 573-3935 > > > > > Message: 3 > > Date: Wed, 17 Oct 2018 00:10:05 +0100 > > From: Andre Alves Garzia > > To: How to use LiveCode > > Cc: Douglas Ruisaard > > Subject: Re: sending a JSON string > > Message-ID: <41683bda-81ae-ac2e-1542-7d98f19ec...@andregarzia.com> > > Content-Type: text/plain; charset=utf-8; format=flowed > > > > Douglas, > > > > I am pasting some code I've built here that should do what you want > > but when I try it, it returns a > > 401 error which is an authentication error. > > On that manual page you linked there is a notice about API keys and > > Channel keys, so maybe the key on this email is not the correct one. > > This is the code (and yes, it is dead ugly): > > > > *on*mouseup > > > > *local*tHeaders, tResult > > > > *put*emptyintofld"output" > > > > *put*"Content-Type: application/x-www-form-urlencoded"intotHeaders > > > > *put*libURLFormData("api_key", "EQKTUQQKVH83D1RE") intotFormData > > > > *put*tsNetCustomUpload("1", > > "https://api.thingspeak.com/channels/564256/feeds.json";, "DELETE", > > tHeaders, "transferComplete", > > tFormData) intotResult > > > > *end*mouseup > > > > *on*transferComplete pID, pResult, pBytes, pCurlCode > > > > *local*tData, tHeaders, tResult, rError > > > > *if* pCurlCode isnot0*then* > > > > *put*tsNetRetrError(pID) & crafterfld"output" > > > > *end* *if* > > > > *put*tsNetRetrData(pID, tError) intotData > > > > *put*"Server returned:"& tData & crafterfld"output" > > > > *put*"Headers"&& tsNetRetrSentHeaders("1", rError) & crafterfld"output" > > > > *put*tResult & cr& tHeaders & cr& pResult & cr& tData afterfld"output" > > > > ?? tsNetCloseConn pID > > > > *end*transferComplete > > > > > > > > On 10/16/2018 9:12 PM, Douglas Ruisaard via use-livecode wrote: > > > 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) > >
Re: sending a JSON string
You can also try this: set the httpheaders to "Content-Type: application/x-www-form-urlencoded" delete URL("https://api.thingspeak.com/channels/564256/feeds.json?api_key=EQKTUQQKVH83D1RE";) - --- Greg (pink) Miller mad, pink and dangerous to code -- Sent from: http://runtime-revolution.278305.n4.nabble.com/Revolution-User-f278306.html ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
Re: sending a JSON string
Thanks very much, Andre! I appreciate the assistance. I am sure the two "keys" are correct as I use them in another portion of the application (an ESP8266 module which sends data to ThingSpeak). A subsequent direct message from you mentioned "Charles Proxy" as an inspector for HTML messaging. THAT's a huge hint and I'll be installing it to see what exactly LC is sending. The ThingSpeak community is very active and I'll submit a request for assistance to it. I thought I'd start with this forum since it is very responsive and knowledgeable... Also my lack of good working understanding about LC's HTML and overall web features and functions left me thinking I was doing something wrong in LC. With Andre's attempt generating a similar response to what I was getting, it helps vindicate my uncertainty about LC's ability to generate an appropriate message to ThingSpeak. if I find a solution, I'll certainly let this board know. In the meantime, if ANYONE has any other suggestions, I'd be extremely grateful! Cheers Doug Douglas Ruisaard Trilogy Software (250) 573-3935 > > Message: 3 > Date: Wed, 17 Oct 2018 00:10:05 +0100 > From: Andre Alves Garzia > To: How to use LiveCode > Cc: Douglas Ruisaard > Subject: Re: sending a JSON string > Message-ID: <41683bda-81ae-ac2e-1542-7d98f19ec...@andregarzia.com> > Content-Type: text/plain; charset=utf-8; format=flowed > > Douglas, > > I am pasting some code I've built here that should do what you want but when > I try it, it returns a > 401 error which is an authentication error. > On that manual page you linked there is a notice about API keys and Channel > keys, so maybe the key on > this email is not the correct one. > This is the code (and yes, it is dead ugly): > > *on*mouseup > > *local*tHeaders, tResult > > *put*emptyintofld"output" > > *put*"Content-Type: application/x-www-form-urlencoded"intotHeaders > > *put*libURLFormData("api_key", "EQKTUQQKVH83D1RE") intotFormData > > *put*tsNetCustomUpload("1", > "https://api.thingspeak.com/channels/564256/feeds.json";, "DELETE", tHeaders, > "transferComplete", > tFormData) intotResult > > *end*mouseup > > *on*transferComplete pID, pResult, pBytes, pCurlCode > > *local*tData, tHeaders, tResult, rError > > *if* pCurlCode isnot0*then* > > *put*tsNetRetrError(pID) & crafterfld"output" > > *end* *if* > > *put*tsNetRetrData(pID, tError) intotData > > *put*"Server returned:"& tData & crafterfld"output" > > *put*"Headers"&& tsNetRetrSentHeaders("1", rError) & crafterfld"output" > > *put*tResult & cr& tHeaders & cr& pResult & cr& tData afterfld"output" > > ?? tsNetCloseConn pID > > *end*transferComplete > > > > On 10/16/2018 9:12 PM, Douglas Ruisaard via use-livecode wrote: > > 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?searchHigh > > light=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
Re: sending a JSON string
Douglas, I am pasting some code I've built here that should do what you want but when I try it, it returns a 401 error which is an authentication error. On that manual page you linked there is a notice about API keys and Channel keys, so maybe the key on this email is not the correct one. This is the code (and yes, it is dead ugly): *on*mouseup *local*tHeaders, tResult *put*emptyintofld"output" *put*"Content-Type: application/x-www-form-urlencoded"intotHeaders *put*libURLFormData("api_key", "EQKTUQQKVH83D1RE") intotFormData *put*tsNetCustomUpload("1", "https://api.thingspeak.com/channels/564256/feeds.json";, "DELETE", tHeaders, "transferComplete", tFormData) intotResult *end*mouseup *on*transferComplete pID, pResult, pBytes, pCurlCode *local*tData, tHeaders, tResult, rError *if* pCurlCode isnot0*then* *put*tsNetRetrError(pID) & crafterfld"output" *end* *if* *put*tsNetRetrData(pID, tError) intotData *put*"Server returned:"& tData & crafterfld"output" *put*"Headers"&& tsNetRetrSentHeaders("1", rError) & crafterfld"output" *put*tResult & cr& tHeaders & cr& pResult & cr& tData afterfld"output" tsNetCloseConn pID *end*transferComplete On 10/16/2018 9:12 PM, Douglas Ruisaard via use-livecode wrote: 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 ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode
sending a JSON string
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 ___ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode