gpt4 book ai didi

google-oauth - 如何在Google的“操作”中仅使用Google帐户对用户进行身份验证?

转载 作者:行者123 更新时间:2023-12-03 12:04:20 25 4
gpt4 key购买 nike

当前,Google助理包含一种简单的方法to request non-identifiable information about the user和详细的流程,以通过OAuth2在第三方服务上对用户进行身份验证。如果我需要用户在Google上进行身份验证,该怎么办?我尝试使用Google OAuth2信息填写帐户链接流程,但这似乎不起作用。如果最后一件事情应该能顺利进行,那将是一个足够的答案。

上下文:用户仅已在相关网页上通过Google进行身份验证。我需要做的就是将此已经通过身份验证的帐户与Google Assistant上未经身份验证的帐户相关联。

最佳答案

,2018年10月25日更新:

自2018年9月13日起,如果您的项目使用Google登录,则现在有一种更简单的方法来访问用户的帐户。 Google Sign-In for Assistant将在您允许的情况下为您提供ID token ,其中包含有关用户的信息,包括其Google ID。仅使用语音即可授予此权限,并且相当简化。

如果您需要访问Google的API,则可以combine this with a web- or app-based Google Sign-In获得其访问OAuth范围的许可。

,2017年10月25日更新:

从10月4日或10月7日左右开始,Google再次更新了their policy以恢复限制有效的OAuth端点的语言。现在,这些条款包括

When implementing account linking using OAuth, you must own your OAuth endpoint



并且现在(从下面的评论中)可以看出,他们现在在检查Google端点,以防止此方法起作用。

此时,您唯一可以做的就是设置自己的OAuth2服务器。

原始帖子:

概括地说,您需要执行的身份验证任务分为四个部分:
  • 配置您的项目(在云控制台中),以便启用Calendar API并正确配置OAuth2客户端。
  • 在操作控制台中配置用于帐户链接的操作。
  • 为您的API.AI代理配置Google Integrations上的操作,以指示需要登录。
  • 当API.AI调用您的Webhook来实现Intent时,它将在JSON中包含一个auth token 。您可以使用此 token 来调用所需的Google API。

  • 配置云项目

    您需要配置云项目,以便它可以访问所需的Google API,并设置OAuth2客户端ID, secret 和重定向URI。
  • 转到https://console.cloud.google.com/apis/dashboard并确保已选中正在使用的项目。然后,确保已启用所需的API。
  • 选择左侧的“凭据”菜单。您应该看到类似以下的内容:

  • Credentials screen
  • 选择“创建凭据”,然后选择“OAuth客户端ID”。Create credentials
  • 选择这是针对“Web应用程序”的(有点...)
  • 输入名称。在下面的屏幕截图中,我使用了“ Action 客户端”,因此我记得这实际上是针对Google上的 Action 。
  • 在“授权重定向URI”部分中,您需要包括https://oauth-redirect.googleusercontent.com/r/your-project-id形式的URI,以在Cloud Console中用项目ID替换“your-project-id”部分。此时,屏幕应如下所示:enter image description here
  • 单击“创建”按钮,您将获得一个包含您的客户ID和密码的屏幕。您现在可以获取这些的副本,但是以后也可以获取它们。 enter image description here
  • 单击“确定”,您将返回到“凭据”屏幕,并添加了新的客户端ID。如果您需要再次获取ID和 secret ,则可以单击铅笔图标(如果 secret 已泄露,请重设 secret )。

  • enter image description here

    配置操作控制台

    在为项目设置OAuth设置后,我们需要告诉Actions这就是我们将用来认证和授权用户的方式。
  • 转到https://console.actions.google.com/并选择要使用的项目。
  • 在“概述”中,逐步进行必要的配置,直到进入第4步“帐户链接”为止。这可能需要您设置名称和图标-如果需要更正这些名称和图标,可以稍后再返回。

  • enter image description here
  • 选择“授权代码”的授予类型,然后单击“下一步”。

  • enter image description here
  • 在“客户端信息”部分中,输入在Cloud Console中创建凭据时的客户端ID和客户端密钥。 (如果您忘记了,请转到“Cloud Console API凭据”部分,然后单击铅笔。)
  • 对于授权URL,输入https://accounts.google.com/o/oauth2/v2/auth
  • 对于 token URL,输入https://www.googleapis.com/oauth2/v4/token
  • 单击下一步

  • enter image description here
  • 现在,您可以为请求的范围配置客户端。与大多数其他地方不同,您输入范围-每行需要一个。然后单击“下一步”。

  • enter image description here
  • 您需要输入测试说明。在提交操作之前,这些说明应包含测试小组可以使用的测试帐户和密码,以对其进行评估。但是,您可以在测试时在其中放一些东西,然后点击“保存”按钮。

  • 配置API.AI

    在API.AI中,您需要指示用户需要登录才能使用操作。
  • 转到https://console.api.ai/并选择您正在使用的项目。
  • 选择“集成”,然后选择“Google上的操作”。如果尚未打开,请打开它。
  • 单击“需要登录才能收到欢迎意图”复选框。

  • enter image description here

    处理Webhook中的内容

    完成所有设置后,处理Webhook中的事情就非常简单了!您可以通过以下两种方式之一获取OAuth访问 token :
  • 如果您使用的是JavaScript库,请调用app.getUser().authToken
  • 如果您正在查看JSON正文,它位于originalRequest.data.user.accessToken


  • 您将使用此访问 token 通过其他地方定义的方法对Google的API端点进行调用。

    您不需要刷新 token -助手应向您提供有效的访问 token ,除非用户已撤消访问权限。

    关于google-oauth - 如何在Google的“操作”中仅使用Google帐户对用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44288981/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com