2017-03-11 13 views
1

DOMOでカスタムコネクタを作成して、infusionsoftからデータを取得しようとしています。私はDOMO IDEでプレーンなjavascriptしか使用できません。以下のコードは、私がinfusionsoftのXML-RPC Apiにリクエストをするために書いたものですが、私はフォルトコードの応答を取得しています。 XmlhttprequestはDOMO Ideではサポートされていません。私は取得していますプレーンなjavascriptを使用してinfusionsoftからDOMOにデータを取得する

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> 

答えて

0

「コンテンツはプロローグで許可されていません」というエラーは、XML宣言の前に何かを送信していることを意味します。 XML本体をパラメーターとして追加するため、要求は"xml=" + xmlとして送信されています。

投稿要求に2番目のパラメータとしてxmlを渡すだけです。

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