了解google上的操作中的登录过程

时间:2017-12-14 09:38:44

标签: actions-on-google dialogflow google-assistant-sdk

我有一个Google智能助理(Google游戏动作)应用,我希望用户登录。我在DialogFlow上使用了动作,而反过来又有一个webhook。

对于需要登录的特定操作,在webhook中,我启动app.askForSignIn();

我有一个名为actions.intent.SIGN_IN的意图,它有一个名为actions_intent_SIGN_IN的事件。在这个动作上,我检查了app.getSignInStatus(),我得到了这个。

我错过了什么吗? Google上的Google智能助理/操作是否会从oauth中提取链接令牌和范围并将其与用户关联?

3 个答案:

答案 0 :(得分:3)

我能够在我的应用上运行,但我没有调用app.askForSignIn(),相反,我已经检查了选项"登录需要"在DialogFlow与Google智能助理集成的过程中,我提供了有关客户端ID以及秘密和授权以及令牌网址的所有信息,其中包括"帐户链接"应用程序关于Google操作系统操作的概述部分。

我基本上遵循了this guide

PS:要使其在控制台上运行,您必须从智能手机登录或直接在浏览器窗口中调用身份验证URL。

答案 1 :(得分:0)

嗨rochan我前段时间遇到同样的问题,看到我的帖子对我来说仍然是个问题。 Google Actions SDK Sign-In implicit flow

但它对我没什么优先权。您可以尝试使用支持Google智能助理的智能手机并在那里进行测试,而不是在模拟器内部进行测试。也许它有效。

答案 2 :(得分:0)

您必须在对话框流中的Google助手集成设置中启用“需要登录”选项 enter image description here

启用此功能后,在操作在Google概述中使用帐户关联选项,然后按照以下步骤操作

我们必须首先启用webhook,然后我们可以看到如何在对话框流程实现文档中启用webhook。

在Google云端控制台下打开您的项目 1.转到谷歌云控制台 - > API和服务 - >凭证 - > OAuth 2.0客户端ID - >网络客户端 - >从那里注意客户端ID,客户端密钥                                          - >下载JSON - 从json记下项目id,auth_uri,token_uri                                          - >授权重定向URI - >白名单我们的应用网址 - >在此URL中,固定部分为https://oauth-redirect.googleusercontent.com/r/,并将项目ID附加到URL中                                          - >保存更改

  1. Google上的操作 - >帐户关联设置                     1.授权类型=授权代码                     2.客户信息                                 1.填写客户端ID,客户端secrtet,auth_uri,token_uri                                 2.输入auth uri为https://www.googleapis.com/auth,token_uri为https://www.googleapis.co.in                                 3.在某些设备上保存并运行谷歌助手。                                 4.在谷歌助手上运行时会显示错误,但不要担心。                                 5.返回助手设置中的帐户关联部分,输入auth_uri作为https://accounts.google.com/o/oauth2/auth                                 和token_uri为https://accounts.google.com/o/oauth2/token                                 6.将范围设为https://www.googleapis.com/auth/userinfo.profilehttps://www.googleapis.com/auth/userinfo.email                                 我们很高兴。                                 7.保存更改。

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

  3. 将访问令牌附加到此链接" https://www.googleapis.com/oauth2/v1/userinfo?access_token="我们可以在生成的json页面中获取所需的详细信息。
  4. 此外,要获取用户名和电子邮件地址,您可以在snipet

    下使用此功能

    accessToken = req.get("originalRequest").get("data").get("user").get("accessToken")
        r = requests.get(link) print("Email Id= " + r.json()["email"]) print("Name= " + r.json()["name"])