javascript - 如何使用 nodejs 在 Dialogflow 中处理 webhook 实现
问题描述
我正在寻找有关如何设计代码以处理 Dialogflow 发送到我的服务器的请求的一些建议。Dialogflow 只允许设置一个 webhook 来处理所有意图。假设我有 5 个不同的意图;他们都会在我的服务器上调用同一个 webhook。现在,如何根据意图优雅地管理服务器端不同的工作流程?我理想情况下用来区分的参数包含在req.body.queryResult.intent.displayName;
并指示当前意图的名称。现在我有两个想法,使用快速重定向方法使用意图作为路径的一部分,或者创建一个以意图为关键的处理程序字典。你有什么建议吗?
解决方案
虽然已弃用dialogflow -fulfillment库,但它使用您的后一种方法 - 从 Intent 名称创建一个 Map 到 Handler 函数并将此映射交给 Dispatcher。这是一种简单、直接、快速的方法。
multivocal库采用类似但更广泛的方法,允许您根据 Intent 名称或分配的 Action 值注册处理程序,并根据 Intent、Action 或在处理程序。
重定向到一个新的、基于路径的方法似乎没有给你任何东西。
推荐阅读
- laravel - seeInDatabase 有时会因为 1 秒后的 updated_at 字段而失败
- android - 在运行时旋转要素并更新图层
- sql - 是否可以在 Access 中更改查询表中的列名?
- oracle11g - 如何检查 OLE DB 的 Oracle Provider 版本
- ruby-on-rails - 保存的根本原因是什么!返回true,但实际上并未保存记录?回调可以产生这种行为吗?
- javascript - 为 Web 应用程序实施教程/介绍
- android - 为什么 10.0.2.2 在模拟器浏览器中有效,但在应用程序中无效?
- youtube-iframe-api - YouTube Java Script player.setPlaybackRate() API 不再工作
- c++ - 交叉编译时提升堆栈跟踪不消除名称
- javascript - 为什么我的计时器栏会停在某个点?