【发布时间】:2018-09-09 11:30:28
【问题描述】:
我的用例以更好地理解问题
我正在开发一个聊天机器人,以支持工人在假设的装配线上解决问题。在机器人向用户打招呼后,它会建议他用他的徽章号码来表明自己的身份。然后,如果用户接受机器人的提示,机器人会询问他需要支持列表中的哪个组件。
每个工人只能管理一组装配线组件的子集。
我的目标是只向用户展示他有资格管理的部分。
...但真正的问题在这里
我的问题是关于通过 Node.js webhook 设置快速回复。在这里你可以看到
我的 webhook 使用 QuickReplies(简化版)
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,但发现它在这个主题上非常缺乏。 任何帮助将不胜感激,谢谢
【问题讨论】:
标签: javascript node.js webhooks dialogflow-es chatbot