1

I'm trying to make API call to external system from a Cloud page, but when I publish I'm getting response Response:nullresultString:. Below the code details. Can someone please help me this. Thank you and looking forward to hear your inputs.

Code that put in Cloud page to make API call

<script runat=server>
Platform.Load("core", "1.1.1");

 try{  
var accessToken = 'XXXXXXXX';
var clientid = 'KKKKKKKK';
var clientsecret = 'YYYYYYYYY';  

var url = 'https://endpointurl.com'

var payload = '{"requestHeader": {"consumer": {"name": "SFMC","id": "SFMC","businessUnit": "CUSTOMER PROFILING","type": "EXTERNAL","clientVersion": "V1","requestDateTime": "2018-07-28 22:27:56:048","hostName": "uapp9077n","businessTransactionType": "ProfileAndPreferenceWrapper","contextId": "","secondContextId": "","thirdContextId": ""},"credentials": {"userName": "","password": "","token": "aip_personalization","type": "jwt"},"transactionId": "31a1475d-0a64-467e-9933-5c928172d145"},"requestBody": {"preferences" :[{"phoneNumber": "565655656","isOptedIn": "false", "isImplicit": "true"}]}}';

  var auth = 'Basic ' + accessToken;
  var req = new Script.Util.HttpRequest(url);
  req.emptyContentHandling = 0;
  req.retries = 2;
  req.continueOnError = true;
  req.contentType = "application/json"
  req.setHeader("Authorization", auth);
  req.setHeader("x-ibm-client-id", clientid);
  req.setHeader("x-ibm-client-secret", clientsecret);
  req.method = "POST"; /*** You can change the method here ***/
  req.postData = payload;
    

  var resp = req.send();
  var resultString = String(resp.content)
  var resultJSON = Platform.Function.ParseJSON(String(resp.content));
  Write("Response:"+resultJSON);
  Write("resultString:"+resultString);
   
 
  
   } catch (e) { Write(Stringify(e)) }
</script>

Here the curl that works in postman

curl --location --request POST 'https://endpointurl.com' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic XXXXXXXX' \
--header 'x-ibm-client-id: KKKKKKKK' \
--header 'x-ibm-client-secret: YYYYYYYYY' \
--data-raw '{
    "requestHeader": {
        "consumer": {
            "name": "SFMC",
            "id": "SFMC",
            "businessUnit": "CUSTOMER PROFILING",
            "type": "EXTERNAL",
            "clientVersion": "V1",
            "requestDateTime": "2018-07-28 22:27:56:048",
            "hostName": "uapp9077n",
            "businessTransactionType": "ProfileAndPreferenceWrapper",
            "contextId": "",
            "secondContextId": "",
            "thirdContextId": ""
        },
        
        "transactionId": "31a1475d-0a64-467e-9933-5c928172d145"
    },
    "requestBody": {
        "preferences": [
            {
                "phoneNumber": "565655656",
                "isOptedIn": false,
                "isImplicit": true
            }
        ]
    }
}'
4
  • 3
    Does this answer your question? Marketing Cloud API - External Integration Commented Apr 29, 2022 at 6:56
  • Edited out your credentials. Commented Apr 29, 2022 at 6:59
  • Put a try/catch around it (try { ...your code... } catch(e) { Write(Stringify(e)) } - need Core library called to use example as is) and see if you can get more details on the error. The most likely culprit I can see would be the payload as if there is a ' or something else that can malform the JSON string in it, it will blow up. I would recommend building it out as a JSON and then Stringifying it to push to payload. Commented Apr 29, 2022 at 13:35
  • @Gortonington : I've update question. I did JSON stringify and put output as payload. Now the response I'm getting is Response:nullresultString: . Do you think is there something do with IP whitelisting or it's a code error.
    – Ramya
    Commented Apr 30, 2022 at 19:38

1 Answer 1

0

This bit looks wrong:

var accessToken = {{yourAccessTokenWhichShouldNeverBePublicOnPagesLikeThis}}; 

Change it to:

var accessToken = 'yourAccessTokenWhichShouldNeverBePublicOnPagesLikeThis'; 
1
  • It did not work. I’ve updated the question with the error message.
    – Ramya
    Commented May 1, 2022 at 22:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .