如何使用对话流调用本地主机的 webhook Rest URl?

How to call webhook Rest URl of localhost with Dialog Flow?

我正在尝试从对话流控制台调用我的 Rest webhook。 我知道部署到任何 public ip 都是可行的。

但是如何在不将 webhook 托管到任何 public IP 的情况下进行测试,并通过 localhost:8080/webhook 进行测试?

您不能这样做 - Dialogflow 需要 public HTTPS 服务器才能访问。

幸运的是,您可以使用 ngrok 等工具,它会在您的计算机和 public 主机 name/address 之间创建隧道。你 运行 ngrok 在你的本地主机上并告诉它你的服务器在哪个本地端口上。它将显示一个主机名,您可以将其插入 Dialogflow。只要您将 ngrok 运行ning 保存在本地,您就会拥有该地址。

运行 您的本地主机服务器。

然后下载以下实用程序。

https://ngrok.com/download

然后解压,你会得到一个ngrok二进制文件。

然后运行, ngrok http portnu

此处的端口号是您的本地网络服务器正在侦听的端口号。

在 运行 执行上述命令时,ngrok 将提供 http 和 https public url。 使用 public url 作为对话流控制台上的实现逻辑。 现在你有了一个本地 webhook 运行ning。

您可以使用 Webhook 中继 (https://webhookrelay.com) 创建 webhook 转发隧道:

$ relay forward -b webhook-demo http://localhost:8080/webhook
Forwarding:
https://my.webhookrelay.com/v1/webhooks/5e722a5e-f3d2-4hqec-9e9f-79f1158e4b10 -> http://localhost:8080/webhook
starting webhook relay agent..

端点是永久性的(直到您删除它们)并且还可以检查 webhook 主体、重试它们或将 webhook 扇出到多个目的地。