首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解actions-on-google中的登录过程

了解actions-on-google中的登录过程
EN

Stack Overflow用户
提问于 2017-12-14 17:38:44
回答 3查看 2.2K关注 0票数 0

我有一个谷歌助手(谷歌上的行动)应用程序,我想让用户登录。我在DialogFlow上使用了actions-on-google,它反过来又有一个webhook。

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

我有一个叫做actions.intent.SIGN_IN的意图,它有一个叫做actions_intent_SIGN_IN的事件。在这个操作中,我检查了app.getSignInStatus(),得到的结果是null。

我是不是遗漏了什么?Google Assistant / Actions会从oauth中提取、链接令牌和作用域,并将其与用户关联吗?

EN

回答 3

Stack Overflow用户

发布于 2017-12-21 21:37:25

我能够让它在我的应用程序上工作,但我没有调用app.askForSignIn(),相反,我检查了与谷歌助手集成的DialogFlow上的“需要登录”选项,然后我在谷歌控制台上的操作应用程序概述的“帐户链接”部分提供了有关客户端ID和秘密的所有信息以及授权和令牌URL。

我基本上关注了this guide

PS:要让它在控制台上工作,你必须从智能手机登录,或者直接在浏览器窗口中调用auth URL。

票数 3
EN

Stack Overflow用户

发布于 2017-12-14 18:14:36

嗨,rochan,我刚才也遇到了同样的问题,请看我的帖子,这对我来说仍然是一个悬而未决的问题。Google Actions SDK Sign-In implicit flow

但它对我来说并没有太多的优先权。你可以尝试使用支持谷歌助手的智能手机进行测试,而不是在模拟器中进行测试。也许它能行得通。

票数 0
EN

Stack Overflow用户

发布于 2018-04-05 15:43:38

您必须在dialogflow中的Google assistant集成设置中启用必需登录选项

启用此功能后,请使用actions-on-google概述中的帐户链接选项,并执行以下步骤

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

在谷歌云控制台下打开您的项目1.转到谷歌云控制台-> APIsand服务-> Credentials -> OAuth 2.0客户端id -> Web client ->注意客户端id,客户端密码从那里->下载json -从JSON记下项目ID,auth_uri,token_uri ->授权重定向URL ->白名单我们的应用程序的URL ->此URL固定部分为https://oauth-redirect.googleusercontent.com/r/,并在URL中追加项目id ->保存更改

谷歌->帐户链接设置上的

  1. 操作1. Grant type =授权代码2.客户端信息1.填写客户端id,客户端secrtet,auth_uri,token_uri 2.输入身份验证uri为https://www.googleapis.com/auth,输入token_uri为https://www.googleapis.co.in 3。在某些设备上保存并从谷歌助手运行。4.在google助手上运行时会显示一个错误,但不用担心。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. 在主机服务器日志中,我们可以看到访问令牌值,并且通过访问令牌,我们可以获得有关电子邮件address.
  3. Append访问令牌到此链接"https://www.googleapis.com/oauth2/v1/userinfo?access_token=“的详细信息,并且我们可以在生成的json页面中获取所需的详细信息。

此外,要获得用户名和电子邮件地址,您可以使用下面的代码片段

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"])

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47810113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档