当前位置: 首页 > 知识库问答 >
问题:

如何在谷歌上的操作上仅使用谷歌帐户对用户进行身份验证?

高锦
2023-03-14

目前,Google Assitant包括一种简单的方法来请求有关用户的不可识别信息,以及通过OAuth2在第三方服务上对用户进行身份验证的详细流程。如果我只需要让用户在 Google 上进行身份验证,该怎么办?我尝试使用Google OAuth2信息填写帐户链接流程,但这似乎不起作用。如果最后一件事应该流利地工作,那么这将是一个足够的答案。

上下文:用户已经只在相关网页上使用谷歌进行身份验证。我所需要的只是将这个已经认证的帐户与Google Assistant上认证较少的帐户链接起来。

共有3个答案

司徒墨竹
2023-03-14

经过很长时间,我能够使它工作。我们必须首先启用网络钩子,我们可以在对话框流履行文档中查看如何启用网络钩子如果我们要使用Google Assistant,那么我们必须首先在集成中启用Google Assistant集成。然后按照下面提到的在google上的操作中进行帐户链接的步骤操作:-

>

  • 去谷歌云控制台 -

    在谷歌上的行动-

    在托管服务器日志中,我们可以看到访问令牌值,通过访问令牌,我们可以获得有关电子邮件地址的详细信息。

  • 狄兴业
    2023-03-14

    联系Google后,目前的情况似乎是您应该设置自己的OAuth2服务器,然后在您的OAuth2服务器的登录屏幕上启动Google OAuth2流程

    您必须使用Google Oauth 2拥有自己的endpoint——您不能将Google Oauth本身用作提供商是正确的。要使用Google OAuth服务,您可以在自己的endpoint中使用“使用Google登录”按钮。

    来源:联系谷歌支持上的谷歌行动

    现在有点无语……因为这似乎是谷歌的一个巨大疏忽。

    俞子实
    2023-03-14

    更新, 25 十月 2018:

    截至2018年9月13日,如果您的项目使用谷歌登录,现在有一种更简单的方式来访问用户的帐户。Google Assistant登录会给你一个ID令牌,其中包含用户的信息,包括他们的Google ID。只需使用语音就可以授予这种权限,而且相当简单。

    如果您需要访问Google的API,您可以将这与基于web或应用程序的Google登录结合起来,以获得他们访问OAuth范围的权限。

    2017年10月25日更新:

    大约在10月4日或7日,Google已经更新了他们的政策(再次)来恢复有效的OAuthendpoint的语言限制。这些条款现在包括

    当使用OAuth实现帐户链接时,您必须拥有自己的OAuthendpoint

    看起来(从下面的评论来看),他们现在检查Googleendpoint来阻止这种方法。

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

    原文:

    从广义上讲,您需要执行的身份验证任务分为四个部分:

    1. 配置您的项目(在云控制台中),以便启用日历API并正确配置OAuth2客户端。
    2. 在操作控制台中为帐户链接配置操作。
    3. 为API.AI代理配置Google集成上的操作以指示需要登录。
    4. 当API.AI调用网络钩子来实现Intent时,它将包含一个身份验证令牌作为JSON的一部分。您可以使用此令牌调用所需的Google API。

    配置云项目

    您需要配置云项目,使其有权访问您需要的 Google API,并设置 OAuth2 客户端 ID、密钥和重定向 URI。

    >

  • 转到https://console.cloud.google.com/apis/dashboard并确保您选择了正在使用的项目。然后确保您启用了所需的API。

    选择左侧的“凭证”菜单。您应该会看到类似这样的内容:

    选择这是用于“Web应用程序”(有点…)

    输入名称。在下面的屏幕截图中,我使用了“动作客户端”,所以我记得这实际上是针对Google上的动作。

    单击“确定”,您将返回到“凭据”屏幕,并添加新的客户端ID。如果需要再次获取 ID 和机密,可以单击铅笔图标(如果机密已泄露,则可以重置机密)。

    配置操作控制台

    一旦我们为项目设置了OAuth,我们需要告诉Actions我们将用它来验证和授权用户。

    >

  • 转到 https://console.actions.google.com/,然后选择要使用的项目。

    在概述中,完成所有必要的配置,直到进入步骤4“帐户链接”。这可能需要您设置名称和图标-如果需要,您可以稍后返回以更正这些。

    在“客户端信息”部分中,输入您在云控制台中创建凭据时的客户端 ID 和客户端密钥。(如果忘记了,请转到“云控制台 API 凭据”部分,然后单击铅笔图标。

    对于授权URL,输入https://accounts.google.com/o/oauth2/v2/auth

    对于令牌URL,输入<code>https://www.googleapis.com/oauth2/v4/token

    单击下一步

    配置API。人工智能

    在原料药中。AI,你需要指示用户需要登录才能使用操作。

    >

  • 转到 https://console.api.ai/,然后选择您正在处理的项目。

    选择“集成”,然后选择“在谷歌上执行的操作”。如果尚未打开,请将其打开。

    点击“欢迎意向需要登录”注记格。

    在webhook中处理事情

    在所有这些设置之后,在您的网络钩子中处理事情是相当简单的!您可以通过以下两种方式之一获得OAuth Access Token:

    > < li>

    如果您使用JavaScript库,调用< code>app.getUser()。authToken

    如果您查看JSON主体,它位于originalRequest.data.user.accessToken

    您将使用此访问令牌使用其他地方定义的方法对Google的APIendpoint进行调用。

    你不需要刷新令牌——助手应该给你一个有效的访问令牌,除非用户已经撤销了访问。

  •  类似资料:
    • 在我的ASP。NET核心3应用程序,我想实现与谷歌登录,只允许特定用户的身份验证。 到目前为止,我所做的是遵循以下教程: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/social-without-identity?view=aspnetcore-3.0 https://docs.micros

    • 我目前正在使用谷歌文档列表API,它只允许用户名和密码进行身份验证。所以我想知道我是否可以用谷歌驱动器API做同样的事情。

    • 我想使用谷歌驱动器作为一个网站的准CMS工作,我正在使内容所有者可以编辑他们的内容使用谷歌驱动器。我希望使用一个可以访问Google Drive的特定用户帐户(在写这篇文章时,服务帐户不能直接访问Google Drive),并且能够与内容所有者共享文档。 在阅读了API和教程之后,我在委托中找到了答案:https://developers.google.com/drive/development

    • 我需要在我的上连接谷歌日历。NET 4.5应用程序(VS 2013项目)。我想从日历中获取所有信息,例如:事件、日期、笔记、姓名、客人等。。。 我使用Google开发者控制台创建了一个Web应用程序客户端ID和一个服务帐户,但我得到了不同的错误,没有结果。我实现了两种不同的方法,一种是使用Web应用程序客户端ID登录,另一种是使用服务帐户。 这是常见的ASPX页面 使用Web应用程序客户端ID 我

    • 我正在遵循官方的Google身份验证流程。我的应用程序已经使用了最新版本的Google地图。 项目 应用程序 地图下方有一条红线,弹出窗口显示找到了11.8.0和11.4.2。构建错误消息如下:, 错误:任务“:应用程序:进程”的执行失败。 请通过更新谷歌服务插件的版本来修复版本冲突(有关最新版本的信息,请访问https://bintray.com/android/android-tools/co