我正在开发一个聊天机器人,以为工作人员提供支持,以解决假想装配线上的问题。机器人向用户打招呼后,它会建议他用其徽章号标识自己。然后,如果用户接受bot的提示,则bot会询问列表中需要支持哪个组件。
每个工人只能管理组装线组件中的一部分。
我的目标是仅向用户显示他有资格管理的零件。
我的问题是关于通过Node.js Webhook设置快速答复。在这里您可以看到
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {QuickReplies}= require('dialogflow-fulfillment');
const https=require('https');
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
function getAllowedParts(agent){
/* deleted all unuseful details*/
agent.add(new QuickReplies(['A','B','C']);
} //close getAllowedParts
let intentMap = new Map();
intentMap.set('UserIntro', getAllowedParts);
agent.handleRequest(intentMap);
});
但是它不起作用,在控制台中打印
TypeError:QuickReplies不是构造函数
我遵循了发现的here,并在https://github.com/dialogflow/dialogflow-fulfillment-nodejs/blob/master/docs/WebhookClient.md#WebhookClient+handleRequest使用了WebhookClient函数。
真正的问题是我不明白在Dialogflow v2中使用Node.js webhook添加非默认快速回复的正确过程是什么。 我也查看了rich messages documentantion,但发现它在此主题上非常缺乏。 任何帮助将不胜感激,谢谢
答案 0 :(得分:1)
您应该会看到在Dialogflow控制台的默认index.js文件中设置的注释掉的快速答复示例。
agent.add(new Suggestion(`Quick Reply`));
agent.add(new Suggestion(`Suggestion`));
您还可以从Github repo看到快速回复的其他可用方法:
let suggestion = new Suggestion('reply to be overwritten');
suggestion.setReply('reply overwritten');