我想为 Google Home 设备构建对话操作并控制其访问。只有某些设备可以调用某些操作。一旦公开部署代理,如何做到这一点?
1 回答
将 Google Home 与您对网络浏览器的看法相同,而将操作与网页或网站相同。如果您想限制哪些 Web 浏览器可以访问 Internet 上的公共站点,那么您会受到一定的限制。
您可以限制对某些 IP 地址的访问,这在某些情况下会起作用 - 但这意味着无法通过非静态 IP 地址进行访问,并且如果(即 - 何时)机器获得新的静态 IP 地址,您有很多工作要做。同样,Google Home 设备可以为每个唯一用户发送一个随机的user_id字符串,您可以使用它来限制谁可以访问。但是这个字符串可以通过用户重置他们的谷歌家庭设备来改变,当它发生时,你将不得不处理它。
网络上更好的解决方案是允许人们登录您的网站。这样您就可以拥有一个面向公众的网页,但只有拥有帐户的人才能访问。您可以确定如何分配帐户,因此非常灵活。与 Google Home 等效的是帐户链接,您将在其中维护一个帐户,作为您控制的 OAuth2 系统的一部分。Google Home 将请求访问您的系统的权限,并且您将向 Actions 颁发 OAuth2 令牌 - 这些令牌将针对每个请求传回给您,您可以验证用户是否具有访问权限。
我强烈建议使用授权代码流程,因为这似乎是 Google 专注于提供附加功能的地方 - 例如通过 Google Home 注册您的服务。