使用DialogFlow从本地设备发出HTTP请求

时间:2019-03-30 22:48:54

标签: http dialogflow webhooks actions-on-google

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

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

我希望请求来自用户设备的原因是,接收方将仅侦听本地网络(这是在Internet路由器中运行的Web服务器)。因此,仅当HTTP请求来自与路由器连接的设备时,此方法才起作用。

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

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

谢谢

1 个答案:

答案 0 :(得分:1)

您可以执行此操作,但不一定像常规Dialogflow项目那样执行。步骤如下:

  1. 通过Dialogflow建立您的操作并添加网络实现
  2. 添加一种将某种通知推送到本地设备的方法
    • 这可以侦听数据库,轮询,推送通知等。
  3. 您的设备收到该通知后,会在本地执行操作
  4. 如果您希望发送此本地操作响应,则可以通过HTTP响应(如果进行HTTP调用)来更新Webhook,或者更新基于云的数据库中的字段。
    • 操作确实有大约5秒钟的超时时间才能获得响应,因此,如果要执行此操作,请注意该限制