如何将后端服务器的帐户绑定到 google 助理用户
How to tie an account from a backend server to a google assistant user
我有一个 Web 应用程序设置,可以使用 Google 助手处理来自 Actions-on-Google/Dialogflow 应用程序的 Webhook 请求。用户无需登录 google 帐户即可使用我的 Web 应用程序,我希望保持这种状态,以便用户可以使用任何电子邮件地址登录。
我还希望我的用户能够使用 Google 助手与我的应用程序交互,并能够通过助手访问 personal/contextual 数据(即当演讲者说 "what's on my shopping list",Web 应用程序需要能够知道 my 的含义)。
目前,我通过使用我的网络应用程序向我的用户(在网络应用程序 UI 中)发出一个唯一的短代码,然后在演讲者说 "My code is 1-2-3-4" 然后我的网络应用程序可以从那时起识别用户(通过将 userId
从 webhook 请求保存到任何获得短代码 1234 的用户,然后使用该 userId 在每个后续请求中查找用户。 )
我的问题是,有更好的方法吗?理想情况下,在我的网络应用程序中,我希望有一个类似 "Authorize Google Assistant" 按钮的东西,然后 link 用户的 google 帐户到他们的网络应用程序帐户,以便对话在助手上是无缝的。
以前有人做过吗?
谢谢
这是 Account Linking 与 Google 助手的完美用例。
从用户的角度来看,他们将开始使用您的 Action。如果他们通过扬声器这样做并且尚未关联帐户,他们将被引导至移动设备进行关联。在移动设备上,他们将被重定向到您网站上的一个页面,他们将在该页面上进行身份验证并授权您的服务器让他们通过智能助理进入。一旦他们这样做,他们将不需要再次登录,帐户将被链接,他们将能够使用语音操作而不会受到进一步的阻碍。
从您作为开发人员的角度来看,您需要设置一个 OAuth2 服务器(我建议使用代码流)。我提到的登录过程是 OAuth 舞蹈的第一步,最终将以您向 Google 发布代码结束。然后,他们会将此代码交换为 Auth Token(具有有限的生命周期)和 Refresh Token(不会过期)。他们将定期使用刷新令牌为该用户获取新的、有效的授权令牌。当用户发出语音命令时,Auth Token 将作为 JSON 中的一个字段传递给您的执行服务器,您可以使用它来验证用户是谁以及他们是否有权使用您的服务。
我有一个 Web 应用程序设置,可以使用 Google 助手处理来自 Actions-on-Google/Dialogflow 应用程序的 Webhook 请求。用户无需登录 google 帐户即可使用我的 Web 应用程序,我希望保持这种状态,以便用户可以使用任何电子邮件地址登录。
我还希望我的用户能够使用 Google 助手与我的应用程序交互,并能够通过助手访问 personal/contextual 数据(即当演讲者说 "what's on my shopping list",Web 应用程序需要能够知道 my 的含义)。
目前,我通过使用我的网络应用程序向我的用户(在网络应用程序 UI 中)发出一个唯一的短代码,然后在演讲者说 "My code is 1-2-3-4" 然后我的网络应用程序可以从那时起识别用户(通过将 userId
从 webhook 请求保存到任何获得短代码 1234 的用户,然后使用该 userId 在每个后续请求中查找用户。 )
我的问题是,有更好的方法吗?理想情况下,在我的网络应用程序中,我希望有一个类似 "Authorize Google Assistant" 按钮的东西,然后 link 用户的 google 帐户到他们的网络应用程序帐户,以便对话在助手上是无缝的。
以前有人做过吗? 谢谢
这是 Account Linking 与 Google 助手的完美用例。
从用户的角度来看,他们将开始使用您的 Action。如果他们通过扬声器这样做并且尚未关联帐户,他们将被引导至移动设备进行关联。在移动设备上,他们将被重定向到您网站上的一个页面,他们将在该页面上进行身份验证并授权您的服务器让他们通过智能助理进入。一旦他们这样做,他们将不需要再次登录,帐户将被链接,他们将能够使用语音操作而不会受到进一步的阻碍。
从您作为开发人员的角度来看,您需要设置一个 OAuth2 服务器(我建议使用代码流)。我提到的登录过程是 OAuth 舞蹈的第一步,最终将以您向 Google 发布代码结束。然后,他们会将此代码交换为 Auth Token(具有有限的生命周期)和 Refresh Token(不会过期)。他们将定期使用刷新令牌为该用户获取新的、有效的授权令牌。当用户发出语音命令时,Auth Token 将作为 JSON 中的一个字段传递给您的执行服务器,您可以使用它来验证用户是谁以及他们是否有权使用您的服务。