连接到 REST API 的 DialogFlow Fulfillment

DialogFlow Fulfilment connecting to REST APIs

我想使用 Dialogflow fulfillment 连接到外部网络服务/API。一种方法是使用自定义 webhook 功能(而不是内联 web hook)。但是,当使用自定义 Web 挂钩时,您似乎只能创建一个,即使您可能有很多意图并且可能想要调用许多端点。有没有办法 link 更多自定义 webhook(API 端点)?

如果您只能设置一个网络挂钩,那么您的 webserivce 将始终收到来自 Dialogflow 的 Post 请求,然后需要解释请求的主体,即基于 intent 参数。只是想知道是否有更好的方法通过 Dialogflow 使用 REST web 服务。

另一个可能的选择是使用内联网络挂钩,然后在其中放置逻辑以调用特定的端点,但是,这可能会有点混乱。

您只能设置一个 fulfillment 来处理您已启用的所有 Intent。这可以是通过履行编辑器内置的,也可以是您指定的 Webhook URL。

该 webhook 应该将实际处理委托给某种 Intent Handler。 Dialogflow node.js fulfillment 库有一种方法可以为每个 Intent 名称注册您想要的处理程序,或者您可以打开 Intent 名称、Action 名称或代码中提供给您的任何其他字段。

在库中,您通常会从适当的 Intent 处理程序进行 REST 调用,该处理程序将采用提供的参数并制作调用。如果您正在使用 Javascript,请确保您正在异步处理调用并且 return 一个 Promise。

我推荐 webhook,因为它比内联编辑器给你更多的控制权。内联编辑器实际上只是一个使用 Firebase Cloud Functions 的 webhook。甚至将它自己放在 Cloud Function 中也能让您更好地控制它。

可能会产生费用,具体取决于您托管它的位置,但是 Firebase 有一个免费套餐,足以进行测试和轻量级操作。发布您的操作后,您还有资格获得来自 Google.

的月度云积分