首页 > 解决方案 > 使用 DialogFlow 从本地设备发出 http 请求

问题描述

我是 DialogFlow 的新手,我不知道我想要实现的目标是否可行。

我正在尝试创建一个 DialogFlow 意图,该意图将在接收到给定命令后从用户设备发出 HTTP 请求。我知道如何使用 webhook 做到这一点,但问题是 webhook HTTP 请求来自 Google 服务器,而不是用户设备。

我希望请求来自用户设备的原因是接收器只会收听本地网络(它是在互联网路由器中运行的网络服务器)。所以这只有在 HTTP 请求来自连接到路由器的设备时才有效。

一种解决方法可能是创建一个到路由器的公共隧道(使用像 ngrok 这样的软件),但我的应用程序针对的是真实用户,所以我宁愿避免这种复杂的设置。

是否可以使用 DialogFlow 进行本地请求?或者是否有另一个我可以用于此目的的 Google-Assistant API,例如 Google IoT 解决方案?

谢谢

标签: httpdialogflow-eswebhooksactions-on-google

解决方案


您可以这样做,但不一定要像常规的 Dialogflow 项目那样进行。以下是步骤:

  1. 通过 Dialogflow 构建您的操作并添加 Web 实现
  2. 添加一种将某种通知推送到本地设备的方法
    • 这可以监听数据库、轮询、推送通知等。
  3. 当您的设备收到该通知时,它会在本地执行操作
  4. 如果您希望将此本地操作响应发回,您可以通过 HTTP 响应(如果进行 HTTP 调用)或更新基于云的数据库中的字段来更新 webhook。
    • 操作确实有大约 5 秒的超时时间才能得到响应,所以如果你想这样做,请注意这个限制

推荐阅读