Установить контекст в диалоге через запрос обещания - PullRequest
0 голосов
/ 24 сентября 2019

У меня проблема с контекстами диалогового потока, когда я пытаюсь изменить их через выполнение.Когда я хочу добавить (или очистить, установив для lifespanCount значение -1) контекст, я обычно использую этот код:

const {WebhookClient} = require('dialogflow-fulfillment');
const agent = new WebhookClient({ request, response });
/*Irrelevant Code Here*/
var context=agent.session+"/contexts/contextName";
agent.setContext({
      "name":context,
      "lifespanCount": 1            
});  

Если я использую этот фрагмент, контекстами можно успешно управлять.Однако теперь я пытаюсь использовать этот фрагмент при отправке запроса-обещания , и, основываясь на ответе на этот запрос, я хочу иметь разные выходные данные.По какой-то причине это действие не дает никаких результатов, я не могу очистить контексты или создать их, так как они не появляются в журналах Firebase, когда я печатаю JSON.stringify (request.body) .

return new Promise( (resolve,reject) => {
    const request = require('request-promise-native');
    const options = {  
    uri: 'link',
    method: 'POST',
    headers: {
        'api-token': 'token'
    },
    body: {
        someData:"someData",
    },
    json: true
    };
    request(options)
        .then(function (body) {
        if (body.status===0)
            agent.add("Option 1");
        else {
            var sessionIdArray=agent.session.split("/");
            var sessionId=sessionIdArray[sessionIdArray.length-1];      
            var context=agent.session+"/contexts/contextName";
            agent.setContext({
                "name":context,
                "lifespanCount": 1            
                });
            agent.add("type something");
            }
        resolve();
    })
    .catch(function (err) {
        // POST failed...
        agent.add("An error happened during your last call.");
        console.log(err.stack);
        resolve();
    });
});     

Это как запрос-обещание мешает агенту установить контекст.Кто-нибудь знает, как заставить это работать?Заранее спасибо!

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