如何在Google对话框流流程的完整部分提取与google主页链接的电子邮件ID和用户名

时间:2018-10-11 06:49:05

标签: node.js google-api dialogflow actions-on-google google-home

我想在用户触发意图时获取与google home的链接电子邮件ID。我关注了以下链接 How to get user's unique identity from google home's voice match profile?

我正在跟踪拉贾特的回答,并且一直进行到第二步。

但是我没有在用户的对象中获取accessToken。我需要这个令牌来从以下api端点获取用户详细信息:“ https://www.googleapis.com/oauth2/v1/userinfo?access_token=

相反,我是从实现JSON中获取该用户对象的:{ locale: 'en-GB', userId: '15391770952311649498774' }

如何获取访问令牌?

1 个答案:

答案 0 :(得分:1)

仅当您通过Account Linking将OAuth服务连接到Action时,Google Assistant才会向您的Action发送一个 auth令牌。如果您有OAuth服务器及其后方的服务,该服务将使用auth令牌为您提供所需的信息,则此方法有效。

但是,您正在尝试使用Google的API从userinfo端点获取该信息。这意味着您需要使用Google的OAuth服务器。拉贾特(Rajat)的答案为您提供了执行此操作的信息。 但是,这是行不通的。 Google不允许您将其OAuth端点用于Assistant-您必须使用自己控制的OAuth端点(例如,一个通过Auth0或自己运行的OAuth端点)

但是仍然有一种获取所需信息的方法。

您可以使用Google Sign In for Assistant。在此方案中,如果用户授予操作许可以获取它,您将获得一个身份令牌

您将需要使用登录助手来请求许可,但是如果用户授权了许可,您将获得一个身份令牌,您可以对该身份令牌进行解码(无需将其发送给服务)以公开个人资料信息,其中可能包括他们的姓名和电子邮件地址。