sending a JSON string

Douglas Ruisaard dougr at telus.net
Wed Oct 17 12:14:38 EDT 2018


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 <andre at andregarzia.com>
> To: How to use LiveCode <use-livecode at lists.runrev.com>
> Cc: Douglas Ruisaard <dougr at telus.net>
> Subject: Re: sending a JSON string
> Message-ID: <41683bda-81ae-ac2e-1542-7d98f19ece82 at 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 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 at lists.runrev.com
> > Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> > http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> ------------------------------
> 
> Message: 4
> Date: Tue, 16 Oct 2018 20:22:13 -0700
> From: Geoff Canyon <gcanyon at gmail.com>
> To: How to use LiveCode <use-livecode at lists.runrev.com>
> Subject: Re: Navigator 6.6 alpha 1 is out
> Message-ID:
> 	<CAKCLKtrG=bPqoKq4_p_M4h6r-CZ4iGee8mKQ-b5D_+2eDQpXgw at mail.gmail.com>
> Content-Type: text/plain; charset="UTF-8"
> 
> Updated to fix the Card List and Background List. Also noticed and fixed a non-visual issue with the
> HTML being set in Navigator's List.
> 
> >
> 
> 
> ------------------------------
> 
> Subject: Digest Footer
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> ------------------------------
> 
> End of use-livecode Digest, Vol 181, Issue 24
> *********************************************





More information about the use-livecode mailing list