2017-03-11 1 views
1

J'essaie de créer un connecteur personnalisé dans DOMO pour récupérer des données d'infusionsoft. Je ne peux utiliser que javascript simple dans DOMO IDE. Le code ci-dessous est ce que j'ai écrit pour faire une requête à XML-RPC Api d'infusionsoft mais je reçois une réponse de code d'erreur. Xmlhttprequest n'est pas supporté dans DOMO Ide.Récupération des données d'infusionsoft vers DOMO en utilisant javascript simple

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) 

La réponse que je reçois est:

<?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> 

Répondre

0

Le « contenu n'est pas autorisé en Prolog » erreur signifie que vous transmettez quelque chose avant la déclaration XML. Étant donné que vous ajoutez le corps XML en tant que paramètre, la demande est soumise en tant que "xml=" + xml.

Passez simplement le fichier XML en tant que second paramètre à la demande de publication.

httprequest.addHeader('Content-Type', 'application/xml'); 
var res = httprequest.post('https://api.infusionsoft.com/crm/xmlrpc/v1?access_token='+metadata.account.accesstoken, xml);