Ошибка диалогового потока узла JS: INVALID_ARGUMENT: ввод текста не задан.?

#javascript #node.js #dialogflow-es

# #javascript #node.js #диалоговые потоки

Вопрос:

Я столкнулся со следующей ошибкой при отправке POST-запроса в JS-код узла. В stackoverflow был аналогичный, но оставшийся без ответа вопрос 2-летней давности. Поэтому я решил спросить.

Мой код:

 const dialogflow=require('dialogflow');
const config=require('../config/keys');

const sessionClient = new dialogflow.SessionsClient();
const sessionPath = sessionClient.sessionPath(config.googleProjectID,config.dialogFlowSessionID)
//console.log(process.env.GOOGLE_APPLICATION_CREDENTIALS);

module.exports = app => {

    app.get('/', (req, res) => {
        res.send({'hello':'jhonny'})
    })
    app.post('/api/df_text_query', async (req, res) => {
        const request = {
            session: sessionPath,
            queryInput: {
                text: {
                    text: req.body.text,
                    languageCode: config.dialogFlowSessionLanguageCode,
                },
            },
        };

        let responses = await sessionClient
            .detectIntent(request)
        res.send(responses[0].queryResult)
    });


    app.post('/api/df_event_query', (req, res) => {
        res.send({'do':'event query'})
    })

}
 

Ошибка, которую я получил:

 (node:11868) UnhandledPromiseRejectionWarning: Error: 3 INVALID_ARGUMENT: Input text not set.
 

Запрос POST :

 {
 "text":"HI"  
}
 

Ответ №1:

Найден ответ

Я пропустил заголовок. Это было решено после добавления заголовка сообщения.