Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用DialogFlow从本地设备发出http请求_Http_Dialogflow Es_Webhooks_Actions On Google - Fatal编程技术网

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

使用DialogFlow从本地设备发出http请求,http,dialogflow-es,webhooks,actions-on-google,Http,Dialogflow Es,Webhooks,Actions On Google,我是DialogFlow的新手,我不知道我想要实现的是否可能 我正在尝试创建一个DialogFlow intent,它将在收到给定命令后从用户设备发出HTTP请求。我知道如何使用webhooks实现这一点,但问题是webhooks HTTP请求来自Google服务器,而不是用户设备 我希望请求来自用户设备的原因是接收器将只监听本地网络(它是运行在internet路由器中的web服务器)。因此,只有当HTTP请求来自连接到路由器的设备时,这才有效 一个解决方法是创建一个到路由器的公共隧道(使用像n

我是DialogFlow的新手,我不知道我想要实现的是否可能

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

我希望请求来自用户设备的原因是接收器将只监听本地网络(它是运行在internet路由器中的web服务器)。因此,只有当HTTP请求来自连接到路由器的设备时,这才有效

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

是否可以使用DialogFlow执行本地请求?或者有没有其他的谷歌助手API可以用于此目的,比如谷歌物联网解决方案


谢谢

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

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