Dav*_*der 20 google-oauth google-oauth2 actions-on-google
目前,Google Assitant提供了一种简单的方法来请求有关用户的不可识别信息,以及通过OAuth2对第三方服务上的用户进行身份验证的详细流程.如果我需要的是让用户在Google上进行身份验证呢?我尝试使用Google OAuth2信息填写帐户关联流程,但这似乎不起作用.如果最后一件事应该流畅地工作,那就足够了答案.
上下文:用户仅在相关网页上使用Google进行身份验证.我只需要将此已经过身份验证的帐户与Google智能助理中经过较少身份验证的帐户相关联.
Pri*_*ner 41
更新,2018年10月25日:
截至2018年9月13日,如果您的项目使用Google登录,现在可以更简单地访问用户的帐户.Google登录for Assistant会在您的许可下向您提供ID令牌,其中包含有关用户的信息,包括其Google ID.此权限可以仅使用语音授予,并且相当简化.
如果您需要访问Google的API,则可以将其与基于Web或应用程序的Google登录相结合,以获得访问OAuth范围的权限.
2017年10月25日更新:
截至10月4日或10月7日,Google已再次更新其政策,以恢复限制有效的OAuth端点的语言.现在的条款包括
使用OAuth实施帐户关联时,您必须拥有OAuth端点
并且(从下面的评论中)看来他们现在检查Google端点以防止此方法起作用.
此时,您唯一能做的就是设置自己的OAuth2服务器.
原帖:
从广义上讲,您需要执行的身份验证任务分为四个部分:
配置云项目
您需要配置您的云项目,以便它可以访问您需要的Google API并设置OAuth2客户端ID,密钥和重定向URI.
转到https://console.cloud.google.com/apis/dashboard,确保您选择了正在使用的项目.然后确保您已启用所需的API.
选择左侧的"凭据"菜单.你应该看到这样的东西:
选择这是用于"Web应用程序"(它......有点......)
输入名称.在下面的屏幕截图中,我使用了"Action客户端",所以我记得这实际上是针对Google上的操作.
在"授权重定向URI"部分中,您需要https://oauth-redirect.googleusercontent.com/r/your-project-id在云控制台中包含替换"your-project-id"部分的表单的URI 和...您的项目ID.此时,屏幕应如下所示:
单击"确定",您将返回"凭据"屏幕,并添加新的客户端ID.如果您需要再次获取ID和密码,则可以单击铅笔图标(如果已被泄露,则可以重置密码).
配置操作控制台
一旦我们为项目设置了OAuth,我们就需要告诉Actions这是我们将用于验证和授权用户的内容.
转到https://console.actions.google.com/并选择您要使用的项目.
在概述中,完成所有必要的配置,直到您可以进入步骤4"帐户链接".这可能需要您设置名称和图标 - 如果需要,您可以稍后返回以更正这些名称和图标.
在"客户端信息"部分中,输入在云控制台中创建凭据时的客户端ID和客户端密钥.(如果您忘记了,请转到Cloud Console API凭据部分,然后单击铅笔.)
对于授权URL,请输入 https://accounts.google.com/o/oauth2/v2/auth
对于令牌URL,请输入 https://www.googleapis.com/oauth2/v4/token
点击下一步
配置API.AI
在API.AI中,您需要指示用户需要登录才能使用Action.
转到https://console.api.ai/并选择您正在使用的项目.
选择"集成",然后选择"Google上的操作".如果你还没有打开它.
单击"登录欢迎意图所需"复选框.
处理webhook中的内容
完成所有设置后,处理webhook中的内容非常简单!您可以通过以下两种方式之一获取OAuth访问令牌:
如果您正在使用JavaScript库,请致电 app.getUser().authToken
如果您正在查看JSON正文,那么它就在 originalRequest.data.user.accessToken
您将使用此访问令牌使用其他地方定义的方法对Google的API端点进行调用.
您不需要刷新令牌 - 除非用户已撤销访问权限,否则助理应向您提供有效的访问令牌.
联系 Google 后,目前的情况似乎是您应该设置自己的 OAuth2 服务器,然后在 OAuth2 服务器的登录屏幕上启动 Google OAuth2 流程。
您必须拥有自己的 Google Oauth2 端点 - 您不能使用 Google Oauth 本身作为提供商,这是正确的。要使用 Google OAuth 服务,您可以在自己的端点中使用“使用 Google 登录”按钮。
来源:在 Google 支持上联系 Google Actions
现在有点无语……因为这似乎是谷歌方面的一个巨大疏忽。
| 归档时间: |
|
| 查看次数: |
8671 次 |
| 最近记录: |