嘿,我是一名学生,对于一个项目,我们必须通过 API.ai(现在命名为 dialogflow.com)为谷歌做一个代理。创建代理并不难,但是是否有可能以某种意图询问用户的网络,找出他正在使用哪些打印机? 我认为您可以通过履行来处理这个问题,但我真的不明白如何使用 snmp 陷阱来做到这一点。是否有可能捕获谷歌助手用户网络的数据?还是谷歌说不,我们不希望你扫描我们的用户网络?
有很多事情使这是不可能的。
首先,Google Home设备本身不允许本地监视或控制任何东西。虽然它确实有"智能家居"语音动作,但这些命令都被发送到云服务器,本地设备负责从制造商的云服务器获取命令。
其次 - Google 上的操作主要将设备(扬声器或手机)视为用户界面设备。除了少数例外,它不允许访问硬件本身,因此它无法直接访问网络堆栈,也无法访问任何 SNMP 操作。
第三 - 当带有 Dialogflow 的命令发送到履行服务器时,该服务器必须位于可公开访问的 HTTPS 服务器地址,并且使用您的操作的每个人都将访问同一服务器。因此,您不能只访问在用户本地网络上运行的服务。您可以创建一个公共服务来标识访问它的每个用户,并将命令转发到在其网络上注册的内容,但您仍然需要一种方法来建立该连接。
一种可能的解决方法是让本地服务器收集 SNMP 信息并将其保存到基于云的数据库中,然后让您的履行服务访问数据库以提供您正在查询的信息。但是,此方案中存在很多陷阱,您需要确保采取适当的数据安全措施。