/ / UrlFetchApp.fetch con API - google-apps-script, zoho

UrlFetchApp.fetch con API - google-apps-script, zoho

Quiero ejecutar una API de Zoho CRM y escribir en mi GAS

  var result=UrlFetchApp.fetch("https://crm.zoho.com/crm/private/xml/Leads/insertRecords?authtoken=XXXXX&scope=crmapi&newFormat=1&xmlData=<Leads><row no="1"><FL val="Company">Your Company</FL><FL val="First Name">Hannah</FL><FL val="Last Name">Smith</FL><FL val="Email">testing@testing.com</FL></row></Leads>");

y tengo un error

Argument non valide : https://crm.zoho.com/crm/private/xml/Leads/insertRecords?authtoken=XXXXXX&scope=crmapi&newFormat=1&xmlData=<Leads><row%20no="1"><FL%20val="Company">Your%20Company</FL><FL%20val="First%20Name">Hannah</FL><FL%20val="Last%20Name">Smith</FL><FL%20val="Email">testing@testing.com</FL></row></Leads> (ligne 35, fichier "MySQLtoZohoCRM")

pero si pego esta URL en mi Chrome o FF se ejecuta !!!

doc API

¿Sabe por qué tengo este error en GAS y no en Chrome?

Gracias

Respuestas

1 para la respuesta № 1

Hay dos formas de UrlFetchApp.fetch():

Estás utilizando la primera forma, pero el parámetroLa información que usted proporciona no está validando porque no es solo una URL. Debería utilizar la segunda forma, con los valores que pondría después de "?" como opciones

Prueba esto:

var url = "https://crm.zoho.com/crm/private/xml/Leads/insertRecords";
var xmlData = "<Leads><row no="1"><FL val="Company">Your Company</FL><FL val="First Name">Hannah</FL><FL val="Last Name">Smith</FL><FL val="Email">testing@testing.com</FL></row></Leads>";
var options =
{
"authtoken" : "XXXXX",
"scope" : "crmapi",
"newFormat" : "1",
"xmlData" : encodeURIComponent(xmlData)
}
var result=UrlFetchApp.fetch(url,options);

var output = Utilities.jsonParse(result.getContentText());
Logger.log(output);