Выполнение диалога с использованием запроса-обещания-нативного: невозможно проанализировать ответ - PullRequest
1 голос
/ 18 февраля 2020

Я выполняю вызов REST API в Salesforce из выполнения DialogFlow, но я просто не могу прочитать ответ JSON. Я хотел бы получить доступ к некоторым полям JSON ответа esp CaseNumber. Запрос может вернуть 0 или несколько записей.

Может ли кто-нибудь помочь мне просто разобрать возвращенный ответ? Спасибо!

  function ticket(agent) {
    agent.add('Looking for ticket --> ' + agent.parameters.numero);
    var rpTicket = require('request-promise-native');   
    var optionsTicket = {
    method: 'GET',
    uri: "https://eu26.salesforce.com/services/data/v44.0/query?q=select CaseNumber from Case where ContactID='XXXXXXX'+order+by+CreatedDate+desc",   
    headers: {
        'Accept': 'application/json',
        'Authorization': 'Bearer XXXXXXXXXX'
     },
    json: true
    };

    return rpTicket( optionsTicket )
    .then( body => {
        console.log( 'Ok here is the JSON --> ' + util.inspect(body,false,null)); // I can read the JSON response in the Google Log console so I m fine
        var myTickets = JSON.parse(util.inspect(body,false,null)); 
        // or
        //var myTickets = JSON.parse(body); 
        console.log( 'Ok here is the # of tickets --> ' + myTickets.count); // Throws an error
        return Promise.resolve( true );
    })
    .catch( err => {
        // You should also return a message here of some sort
        console.log( 'Error ... --> ' + err);
        return Promise.resolve( true );
    });     
  }

1 Ответ

0 голосов
/ 18 февраля 2020

Поскольку в вашей конфигурации запроса-обещания json: true, возвращаемый body уже является объектом JavaScript. Поэтому вам не нужно вызывать JSON.parse(body).

. Вы просто должны иметь возможность прочитать нужное значение с помощью body.count (при условии, что count - это возвращаемое поле).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...