J'essaie d'appeler webhook à partir du flux de dialogue et de ne pas obtenir de réponse de webhook, la réponse que je reçois de la section de réponse, que j'ai indiquée dans l'intention. J'ai également activé le Webhook pour chaque intention et également placé l'URL du Webhook, qui est générée à partir de CLI de Firebase dans la section URL d'exécution. Je joins les captures d'écran du journal Firebase et de la réponse JSON que nous voyons dans le flux de dialogue "show JSON" ainsi que dans le fichier index.js.Je suis bloqué pendant 2 semaines pour le résoudre.
'use strict';
process.env.DEBUG = 'actions-on-google:*';
const { DialogflowApp } = require('actions-on-google');
const functions = require('firebase-functions');
let express = require('express');
let bodyParser = require('body-parser');
// Constants for Dialogflow Agent Actions
let app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json({type: 'application/json'}));
const BYE_RESPONSE = 'input.search';
const WELCOME = 'input.welcome';
exports.helloAssistant = functions.https.onRequest((req, res) => {
console.log('Request headers: ' + JSON.stringify(req.headers));
console.log('Request body: ' + JSON.stringify(req.body));
const asst = new DialogflowApp({request: req, response: res});
// Welcome
function welcome(asst) {
asst.ask('Want to search product or order history');
asst.tell('hello Neeraj!');
}
// Leave conversation with SimpleResponse
function byeResponse (asst) {
app.post('/',function (req, res) {
var myProduct = req.body.result.parameters["productParameter"];
//let intent=asst.getIntent();
var address ="https://ipadress/rest/v2/electronics/products/search";
var address1="https://ipadress";
switch(myProduct){
case 'BYE_RESPONSE':
req.post(address);
break;
case 'WELCOME':
asst.tell('welcome!');
break;
default:
req.post(address1);
break;
}
asst.tell('We swear to serve the master of the Precious.');
});
}
const actionMap = new Map();
actionMap.set(WELCOME, welcome);
actionMap.set(BYE_RESPONSE, byeResponse);
actionMap.set(WELCOME, welcome);
asst.handleRequest(actionMap);
});
Je viens de rencontrer exactement la même erreur et cela est dû au fait que j'ai oublié de mettre mon nom d'intention dans le champ Enter action name
de la section Actions
.
Donc, je passais null
comme nom d'intention puisque je n'en ai pas spécifié.
Je ne l'ai compris que partrès soigneusementrelire https://developers.google.com/actions/dialogflow/first-app .
Merci à tous pour vos précieuses réponses. D'une manière ou d'une autre, je suis capable de corriger cette erreur nulle. En fait, j'avais activé "API Dialogflow V2" dans la section Version de l'API pour l'agent. Maintenant, je l'ai désactivé et cela fonctionne pour moi.
Pour chaque agent, il doit exister un gestionnaire unknown
Intent permettant de gérer la situation inattendue, telle que null, etc.
'input.unknown': () => {
// The default fallback intent has been matched, try to recover.
// Define the response users will hear
responseJson.speech = 'I\'m having trouble, can you try that again?';
// Define the response users will see
responseJson.displayText = 'I\'m having trouble :-/ can you try that again?';
// Send the response to API.AI
// response.json(responseJson);
callback(null, responseJson);
}