0

我尝试为 Google Home 创建操作。对于我的新操作,我需要在我的网站中询问用户授权,我需要识别用户。对于这个用户,应该在 Google Home 应用中找到我的操作,链接到我的网站并登录。我的问题在下一个。我有机会仅使用模拟器创建所有这些吗?还是没有 Google Home 设备我什么都做不了?

4

1 回答 1

2

您肯定可以仅使用模拟器来实现和测试它,尽管它不会像您拥有实际设备那样顺利运行。该过程称为“帐户链接”,在https://developers.google.com/actions/develop/identity/oauth2-overview进行了详细说明,但通常流程为:

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

Google 的文档和 OAuth 2.0 规范中介绍了许多其他详细信息,但这通常是它的工作方式。

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

于 2017-02-17T15:28:29.760 回答