Node.js 用于Facebook客户端的dialogflow快速回复
当我尝试使用Facebook messenger客户端的webhook从节点应用程序向Dialogflow发送响应时 但是,试图向Facebook客户端发送一个快速回复时,它不起作用,出现了下面的错误 错误:建议构造函数需要回复字符串 任何帮助都将不胜感激Node.js 用于Facebook客户端的dialogflow快速回复,node.js,dialogflow-es,chatbot,facebook-messenger,facebook-chatbot,Node.js,Dialogflow Es,Chatbot,Facebook Messenger,Facebook Chatbot,当我尝试使用Facebook messenger客户端的webhook从节点应用程序向Dialogflow发送响应时 但是,试图向Facebook客户端发送一个快速回复时,它不起作用,出现了下面的错误 错误:建议构造函数需要回复字符串 任何帮助都将不胜感激 const {Suggestion} = require('dialogflow-fulfillment'); agent.add(new Suggestion().setReply('test reply from NodeApp'));
const {Suggestion} = require('dialogflow-fulfillment');
agent.add(new Suggestion().setReply('test reply from NodeApp'));
首先,您需要将内联编辑器中package.json文件中的dialogflow fulfillment包的版本更新为^0.6.1,这是最新版本 然后,我认为您可以使用以下语句发送快速回复:
agent.add(new Suggestion(`sample reply`));
请记住,在Facebook接受回复对象之前,应该有一个文本回复
下面是一个可能会帮助您更好的代码片段
const {Suggestion} = require('dialogflow-fulfillment');
agent.add(`This is quick reply.`);
agent.add(new Suggestion(`option 1`));
agent.add(new Suggestion(`option 2`));
如果您使用的是Dialogflow内联编辑器,则上述方法将起作用
如果没有(即,选择拥有自己的部署/开发环境),则必须在履行代码中以自定义有效负载的形式发送快速回复。(在这里,您还必须首先升级对话框流实现包)
下面是一个示例代码段:
const {Payload} = require("dialogflow-fulfillment")
var payload = {
"facebook": {
"text": "Welcome to my agent!",
"quick_replies": [
{
"content_type": "text",
"payload": "reply1",
"title": "reply 1"
}
]
}
}
agent.add(new Payload(agent.UNSPECIFIED, payload, {rawPayload: true, sendAsMessage: true}))
希望这些对你有用