我想在用户触发意图时获取与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' }
。
如何获取访问令牌?
答案 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。在此方案中,如果用户授予操作许可以获取它,您将获得一个身份令牌。
您将需要使用登录助手来请求许可,但是如果用户授权了许可,您将获得一个身份令牌,您可以对该身份令牌进行解码(无需将其发送给服务)以公开个人资料信息,其中可能包括他们的姓名和电子邮件地址。