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

时间:2017-05-20 13:42:32

标签: dialogflow actions-on-google google-home

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

3 个答案:

答案 0 :(得分:8)

这是工作,您可以通过帐户关联来完成此操作。

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

  1. 转到Google云端控制台

    • 转到API&服务 - >凭证 - > OAuth 2.0客户端ID - > Web客户端
    • 请注意客户端ID,来自那里的客户端密码
    • 下载JSON - 从json记下项目ID,auth_uri,token_uri
    • 转到授权重定向URI
    • 白名单我们的应用网址,此网址固定部分为https://oauth-redirect.googleusercontent.com/r/[project-Id](将[project-Id]替换为您的项目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"])
    

答案 1 :(得分:3)

雅,很遗憾,助理的SDK并没有为您提供电子邮件地址。但是,如果您实施帐户链接(如Ahmed所述)并使用Streamlined Flows,那么您将收到提供给您的电子邮件;你只需要使用jsonwebtoken库就可以解码断言JWT并获取电子邮件地址。

话虽如此,这发生在"登录"和令牌交换...不是在实际行动实现期间。您需要发出刷新令牌/访问令牌:S

答案 2 :(得分:1)

一种方法是使用account linking。我想知道在没有电子邮件或帐户关联的情况下,您可能拥有哪些用例并不一定有效?