使用API​​的UrlFetchApp.fetch

时间:2013-04-02 12:00:48

标签: google-apps-script zoho

我想执行一个Zoho CRM API并写入我的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>');

我有一个错误

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")

但如果我将此网址粘贴到我的Chrome或FF中,则会运行!!!

doc API

你知道为什么我在GAS中出现此错误而不是Chrome中的错误吗?

由于

1 个答案:

答案 0 :(得分:1)

UrlFetchApp.fetch()有两种形式:

您正在使用第一个表单,但您提供的参数未通过验证,因为它不仅仅是一个URL。你应该使用第二种形式,你会在'?'后面加上你的价值作为选项。

试试这个:

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);