facebook messenger 和 dialogflow:: 从多个通用模板按钮中单独检测每个事件

facebook messenger and dialogflow:: detect each event individually from multiple generic templates button

我正在使用 chatbotdialogflow 是我的 nlp 平台。目前,我正在使用通用模板在 Messenger 上展示我的产品。

现在,当客户点击多个模板按钮中的 buy now 按钮时,我想检测点击了哪个模板 button(检测单个事件)并想为来自 dialogflow.

的不同产品设置不同的消息

完成这项工作的一种方法是使用 context,但我想知道是否可以在不使用 context 的情况下实现相同的结果?

如有任何建议,我们将不胜感激。谢谢!

您可以使用 postback button 中的有效负载字段在单击按钮时将特定消息发送回 dialogflow。

如果将此与参数结合使用,则可以使用它们来触发特定的意图,或者只是发送点击产品的信息。例如:

用以下短语想象一个意图:

在这种情况下:“烤面包机”和“微波炉”是称为对象的实体的一部分

在回复messenger时,您可以引用该参数,例如:

{
  "facebook": {
    "attachment": {
      "type": "template",
      "payload": {
        "template_type": "button",
        "buttons": [
          {
            "payload": "trigger buy $objects",
            "title": "Buy Now",
            "type": "postback"
          }
        ],
        "text": "Buy the $objects!"
      }
    }
  }
}

将显示参数:

当用户点击按钮时,Messenger 将向 dialogflow 发送有效负载的内容,在本例中为:“trigger buy toaster”。请注意,在有效负载中,引用 $objects 也被实际参数“toaster”替换。

因此,您可以在 Dialogflow 中创建一个新的意图,使用“trigger buy toaster”这样的训练短语来捕捉这些将要购买的对象的动作。

您还可以使用 webhook fulfillment 为 postback button 响应的生成和接收答案的意图添加更多逻辑。