Facebook 客户端的 dialogflow 快速回复

dialogflow quick reply for Facebook client

当我尝试使用 Facebook Messenger 客户端的 webhook 将响应从 Node 应用程序发送到 Dialogflow 时。

正在尝试向 Facebook 客户端发送快速回复,但是无法正常工作并出现以下错误。

错误:建议构造函数需要回复字符串

任何帮助将不胜感激。

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 内联编辑器 作为实现

,上述方法将有效

如果没有(即选择拥有自己的 deployment/development 环境),您必须在实现代码中将快速回复作为自定义负载发送。 (这里也是,你必须先升级dialogflow-fulfillment包)

这是一个示例代码片段:

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}))

希望这些对你有用。