答案 0 :(得分:8)
这是工作,您可以通过帐户关联来完成此操作。
我们必须首先启用webhook,我们可以在对话框流程实现文档中看到如何启用webhook 如果我们要使用Google智能助理,那么我们必须首先在集成中启用Google智能助理集成。 然后按照下面提到的步骤进行谷歌操作中的帐户关联: -
转到Google云端控制台
转到Google上的操作(https://console.actions.google.com) - >帐户关联设置
客户信息
返回助理设置中的帐户关联部分,这次输入正确的 auth_uri 为https://accounts.google.com/o/oauth2/auth 和 token_uri 为https://accounts.google.com/o/oauth2/token
请注意,从他们这方面出现的某种问题是,不允许您在第一次使用时使用此网址,并且会继续说"不允许使用通用网址。您必须提供特定于您的智能助理应用的有效令牌网址。"所以只需在第一次点击中保存任意一个随机网址,然后再回来它会允许你这些网址: - )
将范围设为https://www.googleapis.com/auth/userinfo.profile和https://www.googleapis.com/auth/userinfo.email 我们很高兴。
在托管服务器日志中,我们可以看到访问令牌值,通过访问令牌,我们可以获取有关电子邮件地址的详细信息。
编写此代码
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。我想知道在没有电子邮件或帐户关联的情况下,您可能拥有哪些用例并不一定有效?