Varun Raja
Varun Raja

Reputation: 1

Need Help converting curl to google script code

I've been trying to convert the following line of curl code to Google Apps Script and have had no luck.

The curl code:

curl -X POST "https://api.textspaced.com/market/commodities/" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "token=###"

I've tried different styles of headers and different ways of labeling the token and payloads, but I always get the error that No API token has been provided.

Google Apps Script code:

function preshfinder() {
  var message = 'token=###' ; 
  var payloads = JSON.stringify(message);  
  var headers =  {'accept': 'application/json',
                              'Content-Type': 'application/x-www-form-urlencoded'
                            };
  var requestOptions = {    
             "ContentType" : "application/json",
             headers: headers,
             method: "POST",
             payload:  payloads, 
              followRedirects : true,
            };

            var fetcher = UrlFetchApp.fetch('https://api.textspaced.com/market/commodities', requestOptions)
             Logger.log(fetcher.getContentText());
}

Upvotes: 0

Views: 293

Answers (1)

Tanaike
Tanaike

Reputation: 201603

  • You want to convert the following curl command to Google Apps Script.

    curl -X POST \
    "https://api.textspaced.com/market/commodities/" \
    -H "accept: application/json" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "token=###"
    
  • You have already confirmed that the above curl command worked.

If my understanding is correct, how about this answer?

Modification points:

  • In your curl command, the content type is application/x-www-form-urlencoded. And the data is sent as form.
  • The default value of followRedirects is true.

When above points are reflected to your script, how about the following modification?

Modified script:

function preshfinder() {
  var payloads = {token: "###"};  // Please set your token here.
  var headers = {
    'accept': 'application/json'
  };
  var requestOptions = {
    contentType: 'application/x-www-form-urlencoded',
    headers: headers,
    method: "POST",
    payload:  payloads,
  };
  var fetcher = UrlFetchApp.fetch('https://api.textspaced.com/market/commodities', requestOptions)
  Logger.log(fetcher.getContentText());
}

Reference:

The request of above modified script is the same with the curl command. But I cannot test this. So if this didn't resolve your issue, I apologize.

Upvotes: 1

Related Questions