Google 家庭行动

Google Home actions

我尝试为 Google 主页创建操作。对于我的新操作,我需要在我的网站上请求用户授权,我需要识别用户。对于这个用户,应该在 Google Home 应用程序中找到我的操作,在我的网站上链接并登录。 我的问题在下一个。我有机会只使用模拟器来创建所有这些吗?或者没有 Google 家庭设备我什么都做不了?

您绝对可以仅使用模拟器来实现和测试它,尽管它不会像您拥有实际设备那样流畅地运行。该过程称为 "account linking",在 https://developers.google.com/actions/develop/identity/oauth2-overview 中有详细说明,但一般流程为:

  1. 您的服务需要充当 OAuth 2.0 服务器,并有授权页面和令牌交换端点可供 Google 助手使用。
  2. 当用户首次激活你的 Action 时,系统会告知他们需要授予 Home 权限才能访问你的帐户,他们应该检查 Google Home 应用中的卡片。
  3. 卡片会将他们重定向到授权页面,在那里他们登录到您的网站并授权从 Google 主页访问您的网站。
  4. 作为授权的一部分,您将继续 OAuth 2.0 流程并将(最终)发布一个 Google Home 将存储的不记名令牌。
  5. 用户然后可以 re-trigger 操作。每次调用您的 webhook 时,Google Home 都会将此令牌发送给您。
  6. 然后您可以使用此令牌查找发出请求的用户。

Google 的文档和 OAuth 2.0 规范中涵盖了很多其他详细信息,但这通常是它的工作原理。

对于模拟器,用户不会被定向到 Google 家庭应用中的卡片。相反,您可以在第一次激活 Action 时在模拟器提供的 return JSON 中看到。其中,debugInfo.sharedDebugInfo.debugInfo 字段包含身份验证 URL。您应该在浏览器中转到 URL,完成 sign-in 和授权流程,最终将被重定向到包含参数 result_code=SUCCESS 的 URL。在此之后,使用模拟器会将访问令牌发送到您的 webhook。有关详细信息,请参阅 https://developers.google.com/actions/tools/testing#testing_on_the_google_home_web_simulator