如何在Kommunicate中使用Dialogflow的实现代码

时间:2018-07-05 14:30:11

标签: bots webhooks dialogflow fulfillment kommunicate

抱歉,这个问题很愚蠢,但是我在使用Javascript或Dialogflow方面经验不足。我有一个Dialogflow机器人,它已通过Kommunicate集成到测试网站中。该机器人可以处理通过意图设置的响应,但是实现代码似乎无法运行,因为通过实现设置的任何响应都不会发生。通过内联编辑器对实现进行编码。

以下是通过意图设置的一些响应:

Intents

这是通过实现来设置的响应:

Fulfillment

在这里,您可以通过Dialogflow控制台看到履行响应:

Console Response

最后,在这里您可以看到它不适用于Kommunicate,但意图响应却可以:

Kommunicate Response

我非常确定我的问题是,实现代码只是不在Kommunicate上运行,并且需要以我不知道的某种方式集成到Kommunicate中。有人知道我需要做什么吗?

编辑:我可能已经找到了原因。在履行文档的底部,它说:“从您的Firebase的Cloud Function发起的到Google网络外部目标的网络调用要求为基础Google Cloud或Firebase项目启用计费。”在试图说服老板花钱之前,有人能确认这是我需要做的吗?

1 个答案:

答案 0 :(得分:5)

您无需启用计费即可使用Dialogflow。 Dialogflow随附Free Edition,您可以在无需启用计费的情况下开发和测试Bot。

Kommunicate支持Dialogflow的默认响应以及自定义webhook。使用默认响应非常简单。在Custom Payload中输入文本响应或kommunicate支持的任何Actionable message,Kommunicate将自动在聊天UI中呈现它。

如果您已为Intent启用了Webhook调用,则可以使用fulfillmentText字段来返回文本消息数组,或者使用fulfillmentMessages字段来返回可操作消息,如Dialogflow docs中所述。

Kommunicate使用这些字段来确定将在UI中显示哪些消息。如果两个字段都存在,则两者都将在UI中呈现。这是一个示例,您的webhook响应如下所示:

{
    "fulfillmentText": "render a text message from webhook",
    "fulfillmentMessages": [{
      // message 1 (optional)- render actionable message 
        "payload": {
            "message": "render a Actionable message from webhook",
            "platform": "kommunicate",
            "metadata": {
                // replace this with metadata JSON supported by kommunicate 
            }
        }
    }, {
      // message 2 (optional)- render a text message  
        "text": {
            "text": ["render array of  text message from webhook"]
        }
    }]
}

此JSON将在UI上呈现消息。您可以根据需要自定义。这是有关dialogflow fulfilment with kommunicate的更多信息。

如果仍然无法正常运行,请通过hello@kommunicate.io发送查询。

PS:我为Kommunicate工作。