Получение данных из infusionsoft в DOMO с использованием простого JavaScript

Я пытаюсь создать пользовательский соединитель в DOMO для извлечения данных из infusionsoft. Я могу использовать только простой JavaScript в DOMO IDE. Приведенный ниже код - это то, что я написал, чтобы сделать запрос к XML-RPC Api infusionsoft, но я получаю ответ с кодом ошибки. Xmlhttprequest не поддерживается в DOMO Ide.

var xml = '<?xml version="1.0" encoding="UTF-8"?>'+
'<methodCall>'+
  '<methodName>DataService.query</methodName>'+
  '<params>'+
    '<param>'+
      '<value><string>xxxxxxxxxxxxxxxxxxx</string></value>'+
    '</param>'+
    '<param>'+
      '<value><string>Invoice</string></value>'+
    '</param>'+
    '<param>'+
      '<value><int>1000</int></value>'+
    '</param>'+
    '<param>'+
      '<value><int>0</int></value>'+
    '</param>'+
    '<param>'+
      '<value><struct>'+
        '<member><name>Id</name>'+
          '<value><string>[1,2,3,4]</string></value>'+
        '</member>'+
      '</struct></value>'+
    '</param>'+
    '<param>'+
      '<value><array>'+
        '<data>'+
          '<value><string>Id</string></value>'+
          '</data>'+
      '</array></value>'+
    '</param>'+
    '<param>'+
      '<value><string>orderBy</string></value>'+
    '</param>'+
    '<param>'+
      '<value><boolean>ascending</boolean></value>'+
    '</param>'+
  '</params>'+
'</methodCall>';
httprequest.addHeader('Content-Type', 'application/xml');
httprequest.addParameter('xml', xml);

var res = httprequest.post('https://api.infusionsoft.com/crm/xmlrpc/v1?access_token='+metadata.account.accesstoken);
    DOMO.log(res)

Ответ, который я получаю:

<?xml version="1.0" encoding="utf-8"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><i4>0</i4></value></member><member><name>faultString</name><value>Failed to parse XML-RPC request: Content is not allowed in prolog.</value></member></struct></value></fault></methodResponse>

1 ответ

Ошибка "Содержимое запрещено в прологе" означает, что вы передаете что-то до объявления XML. Поскольку вы добавляете тело XML в качестве параметра, запрос отправляется как "xml=" + xml,

Просто передайте xml в качестве второго параметра в запрос на публикацию.

httprequest.addHeader('Content-Type', 'application/xml');
var res = httprequest.post('https://api.infusionsoft.com/crm/xmlrpc/v1?access_token='+metadata.account.accesstoken, xml);
Другие вопросы по тегам