api - 通过 AoG 中的 OAuth 获取有关 Actions on Google 的用户信息?
问题描述
Account Linking
提供多种方式将用户链接到他们自己的帐户,例如他们的 Google 帐户或 Twitter 帐户。
Actions on Google
我在网站中选择了 OAuthOAuth 2.0 Authorization Code Grant
来获取访问令牌以换取数据资源。当我将用户链接到Google Sign-In
启用的 Google 帐户时,获取用户信息很容易,因为数据存储在 下payload
,但 OAuth 实现似乎不会在payload
inside下生成用户数据User object
。
那么在这种情况下,我是否应该向第三方进行 API 调用以获取用户数据并将该个人数据存储到数据库中?我想知道 Google 是否有代表开发人员准备的方法。如果没有,那么通过说“你好,{人名}”来问候再次访问我的应用程序的用户会变得乏味......
解决方案
帐户链接有两个选项。
在您描述的情况下,您将提供OAuth 端点并从 Assistant 获取身份验证令牌,并且您负责获取此令牌并使用它来确定用户是谁,以便您可以了解有关他的任何信息。令牌是您发布和控制的令牌,因此您的数据库中可能已经有该信息。如果您正在重用来自另一个服务的令牌,该服务应该能够告诉您他们是谁。
听起来您正在使用 Google 登录,但是,在这种情况下,使用Google 登录更容易。一旦用户登录到您的服务(通过应用程序或 Web 应用程序)并授予您服务的权限,那么他们也将能够通过 Google 助理获得访问权限。您将获得一个id 令牌,可以对其进行解码以获取有关用户的个人资料信息,包括他们的 Google ID 和姓名。
推荐阅读
- java - Android lint 自定义检查 UCallExpression 类型的方法接收器
- r - 如何抑制 ggplot 累积发生率曲线上的置信区间?
- ios - 为什么我的收藏视图在更新步进值时消失了?
- ios - 不是目录@rb_sysopen - /usr/local/bin/fuzzy_match
- java - 使用带有 Cucumber 的 QAF testrunner 运行程序时出错
- php - MySQL 在插入数据库时将日期设置为 0000-00-00
- firebase - Unity Firebase Analytics 在场景加载时出现 lldb 错误
- here-api - 删除无效标记
- alexa - Alexa 测试调用名称 - 提交失败
- ibm-midrange - SETLL READE 用于前缀文件