我有一个Google智能助理(Google游戏动作)应用,我希望用户登录。我在DialogFlow上使用了动作,而反过来又有一个webhook。
对于需要登录的特定操作,在webhook中,我启动app.askForSignIn();
我有一个名为actions.intent.SIGN_IN的意图,它有一个名为actions_intent_SIGN_IN的事件。在这个动作上,我检查了app.getSignInStatus(),我得到了这个。
我错过了什么吗? Google上的Google智能助理/操作是否会从oauth中提取链接令牌和范围并将其与用户关联?
答案 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助手集成设置中启用“需要登录”选项
启用此功能后,在操作在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中 - >保存更改
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.profile和https://www.googleapis.com/auth/userinfo.email 我们很高兴。 7.保存更改。
在托管服务器日志中,我们可以看到访问令牌值,通过访问令牌,我们可以获取有关电子邮件地址的详细信息。
此外,要获取用户名和电子邮件地址,您可以在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"])