【问题标题】:DialogFlow Fulfilment connecting to REST APIsDialogFlow Fulfillment 连接到 REST API
【发布时间】:2018-10-31 15:29:29
【问题描述】:

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

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

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

【问题讨论】:

    标签: rest dialogflow-es fulfillment


    【解决方案1】:

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

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

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

    我推荐使用 webhook,因为它比内联编辑器为您提供更多控制。内联编辑器实际上只是一个使用 Firebase Cloud Functions 的网络钩子。即使将它自己放在云函数中,您也可以更好地控制它。

    可能会产生费用,具体取决于您托管它的位置,但 Firebase 有一个免费层级,足以进行测试和简单操作。发布您的操作后,您还有资格获得 Google 提供的每月云积分。

    【讨论】:

    • 好的,谢谢。那么在这两个选项中,您会推荐内置的履行编辑器,因为它可以利用履行库然后调用特定的 REST 端点?此外,此选项是否会产生额外的成本影响?
    猜你喜欢
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多