使用Google操作从用户处获取电子邮件

gre*_*f82 4 actions-on-google google-home dialogflow-es

我希望使用此处记录的Google操作接收用户电子邮件,但文档会讨论EMAIL权限,但是当我在此处阅读权限文档时,我找不到任何EMAIL权限.有帮助吗?我如何收到用户电子邮件?

Jat*_*jan 8

这是工作,您可以通过帐户链接执行此操作.

我们必须首先启用webhook,我们可以看到如何在对话框流程实现文档中启用webhook如果我们要使用Google智能助理,那么我们必须先在集成中启用Google智能助理集成.然后按照下面提到的步骤在Google上的操作中进行帐户关联: -

  1. 转到谷歌云控制台

    • 转到API和服务 - >凭据 - > OAuth 2.0客户端ID - > Web客户端
    • 从那里注意客户端ID,客户端密钥
    • 下载JSON - 从json记下项目id,auth_uri,token_uri
    • 转到授权重定向URI
    • 白名单我们的应用程序的URL,在此URL固定部分是https://oauth-redirect.googleusercontent.com/r/ [project-Id](用您的项目ID替换[project-Id])
    • 保存更改
  2. 转到Google上的操作(https://console.actions.google.com) - >帐户关联设置

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

  4. 将访问令牌附加到此链接" https://www.googleapis.com/oauth2/v1/userinfo?access_token= ",我们可以在生成的json页面中获取所需的详细信息.
  5. 写下这段代码

    accessToken = req.get("originalRequest")
                     .get("data")
                     .get("user")
                     .get("accessToken")
    
    r = requests.get(link) // make get request to link
    
    print("Email Id: " + r.json()["email"])
    print("Name: " + r.json()["name"])
    
    Run Code Online (Sandbox Code Playgroud)


小智 4

是的,不幸的是,Assistant 的 SDK 没有为您提供电子邮件地址。但是,如果您实现帐户链接(如艾哈迈德提到的)并使用简化流程,那么您将收到提供给您的电子邮件;您只需要使用 jsonwebtoken 库,就可以解码断言 JWT 并获取电子邮件地址。

话虽如此,这种情况发生在“登录”和令牌交换期间……而不是在实际执行操作期间。您需要颁发刷新令牌/访问令牌:S