连接到REST API的DialogFlow实现

时间:2018-10-31 15:29:30

标签: rest dialogflow fulfillment

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

如果您只能设置一个Web挂钩,则您的Webserivce将始终收到Dialogflow的Post请求,然后需要解释请求的内容,即基于intent参数。只是想知道是否有更好的方法通过Dialogflow使用REST Web服务。

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

1 个答案:

答案 0 :(得分:1)

您只能设置一项履行,它将处理您已启用的所有Intent的处理。这可以是通过实现编辑器内置的,也可以是您指定的Webhook URL上的。

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

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

我建议使用一个Webhook,因为它比内联编辑器具有更多的控制权。内联编辑器实际上只是使用Firebase Cloud Functions在幕后的一个Webhook。即使自己将其置于Cloud Function中,也可以更好地控制它。

根据托管位置的不同,可能会有所不同,但是Firebase具有免费层,足以进行测试和轻松运行。发布操作后,您还有资格获得Google的每月云信用额。