dialogflow-es - 如何从 dialogflow 内联编辑器迁移到 webhook
问题描述
我正在为我的一些代理意图使用 Dialogflow 内联编辑器。那里只有两个文件(package.json 和 index.js)。如果我想为新意图添加响应,我只需编写一个带有响应字符串的函数,并将该函数与意图名称匹配。很简单。
现在,我想从内联编辑器切换到我自己的 Webhook。我知道我必须在本地机器上运行类似 Express 服务器的东西。但是,这只是将这两个文件的内容复制并粘贴到我自己的两个文件中吗?还是我需要做其他事情才能让它发挥作用。
此外,如果我的内联编辑器(与 Google 日历 API 交互)中确实有一些复杂的实现功能,如果我只是将现有代码复制并粘贴到本地文件,我该如何传递凭据?
解决方案
基本上,如果您想从无服务器功能迁移到服务器是的,您将必须复制这些文件并启动您自己的快速服务器
对于要成为 webhook 的服务器,只需提供一个可以为 POST 端点提供服务的服务即可满足您的需求
- 创建您的 Node.js 项目
- 安装 express、dialogflow-fulfillment 库和其他依赖项
- 创建您的 POST 端点以实现
- 将指向该端点的链接放入 Dialogflow
Webhook 只是一个简单的 HTTP 回调。Dialogflow 将触发您提供的 webhook、POST 端点,并在代码执行后将响应发送回 Dialogflow
要附加到 Dialogflow webhook,您只需提供您的 webhook 端点即可
通过将URL*部分替换为您的端点,例如https://yourdomain.com/endpointforwebhook
如果您从本地计算机开发,请尝试使用Ngrok并为 Dialogflow 添加临时端点
如果对于登台或生产,您需要一个真正的端点域,只需从将您的快速服务器部署到Heroku开始,然后为 Dialogflow 添加一个端点
对于本地文件中的凭据部分,
您可以使用环境 env 或一些配置管理来管理本地文件中的凭据。请参阅Dotenv npm 包
推荐阅读
- javascript - 如何在 React Navigation 5 中将自定义道具传递给抽屉屏幕?
- javascript - 检查 JavaScript 中是否存在通知
- javascript - 无法让 audio.play() 和 audio.pause() 工作
- html - 使用 CSS 的响应式侧边栏交互
- regex - 用正则表达式匹配ruby中的字符串后获取数字
- python - 优化 numpy 数组创建
- php - Cors 在 Laravel 6 和 vue js 2 中不起作用
- jquery - Jquery获取下拉标签并制作默认选择选项项目占位符
- azure-devops - nuget.build.tasks.pack - 需要构建错误作者
- python - 请解释这段代码的结论