我尝试为 Google Home 创建操作。对于我的新操作,我需要在我的网站中询问用户授权,我需要识别用户。对于这个用户,应该在 Google Home 应用中找到我的操作,链接到我的网站并登录。我的问题在下一个。我有机会仅使用模拟器创建所有这些吗?还是没有 Google Home 设备我什么都做不了?
问问题
517 次
1 回答
2
您肯定可以仅使用模拟器来实现和测试它,尽管它不会像您拥有实际设备那样顺利运行。该过程称为“帐户链接”,在https://developers.google.com/actions/develop/identity/oauth2-overview进行了详细说明,但通常流程为:
- 您的服务需要充当 OAuth 2.0 服务器,并具有可供 Google 助理使用的授权页面和令牌交换端点。
- 当用户第一次激活你的操作时,他们会被告知他们需要授予 Home 权限才能访问你的帐户,并且他们应该检查 Google Home 应用中的卡片。
- 该卡会将他们重定向到授权页面,在那里他们登录您的网站并授权从 Google Home 访问您的网站。
- 作为授权的一部分,您将继续 OAuth 2.0 流程并(最终)颁发一个不记名令牌,供 Google Home 存储。
- 然后用户可以重新触发操作。每次调用您的 webhook 时,Google Home 都会将此令牌发送给您。
- 然后,您可以使用此令牌来查找发出请求的用户。
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 回答