В v1 запрос и ответ были специально определены и прочитаны через -

console.log(request.body);
var input = request.body.queryResult;

В версии 2 запрос и ответ оба помещаются в «приложение». Мои объявления приложения, как показано ниже -

const {dialogflow} = require('actions-on-google');
const app = dialogflow({clientId: 'projectId'});

Я попытался использовать следующее, но понял, что это не совсем правильный путь -

console.log(conv.request.body); //Getting undefined in console
//OR
console.log(app.request.body); //Getting undefined in console
var input = conv.request.body.queryResult; 

Нужно ли конкретно упоминать запрос и ответ в любом месте, аналогичном WebhookClient ({запрос, ответ}) в V1?

Заранее спасибо

1
AceDullur 26 Фев 2020 в 10:36

2 ответа

Лучший ответ

После миллиона проб и ошибок я наконец нашел его, и это ужасно просто

console.log(conv.body);
var input = conv.body.queryResult.queryText;
2
AceDullur 28 Фев 2020 в 11:43

Я знаю, что это, кажется, уже решено. Но я заметил, что вы сделали console.log () на conv.body. Предполагая, что эта переменная conv является объектом ответа JSON, который вы получили от Dialogflow, я бы порекомендовал сделать console.log (JSON.stringify (conv)), который, что неудивительно, печатает полный объект JSON в строку в консоли. Это сэкономило мне много времени при попытке выяснить многие форматы JSON.

1
Lucas Raza 28 Фев 2020 в 18:53