首页 > 解决方案 > 通过 AoG 中的 OAuth 获取有关 Actions on Google 的用户信息?

问题描述

Account Linking提供多种方式将用户链接到他们自己的帐户,例如他们的 Google 帐户或 Twitter 帐户。

Actions on Google我在网站中选择了 OAuthOAuth 2.0 Authorization Code Grant来获取访问令牌以换取数据资源。当我将用户链接到Google Sign-In启用的 Google 帐户时,获取用户信息很容易,因为数据存储在 下payload,但 OAuth 实现似乎不会在payloadinside下生成用户数据User object

那么在这种情况下,我是否应该向第三方进行 API 调用以获取用户数据并将该个人数据存储到数据库中?我想知道 Google 是否有代表开发人员准备的方法。如果没有,那么通过说“你好,{人名}”来问候再次访问我的应用程序的用户会变得乏味......

标签: apioauthactions-on-google

解决方案


帐户链接有两个选项。

在您描述的情况下,您将提供OAuth 端点并从 Assistant 获取身份验证令牌,并且您负责获取此令牌并使用它来确定用户是谁,以便您可以了解有关他的任何信息。令牌是发布和控制的令牌,因此您的数据库中可能已经有该信息。如果您正在重用来自另一个服务的令牌,该服务应该能够告诉您他们是谁。

听起来您正在使用 Google 登录,但是,在这种情况下,使用Google 登录更容易。一旦用户登录到您的服务(通过应用程序或 Web 应用程序)并授予您服务的权限,那么他们也将能够通过 Google 助理获得访问权限。您将获得一个id 令牌,可以对其进行解码以获取有关用户的个人资料信息,包括他们的 Google ID 和姓名。


推荐阅读