Dialogflow,Google帐户链接和ASP.NET核心API(Webhook)

我是一名学生,正在为我的高级设计项目开发一个用于Google Home的NLP应用程序。 我特别想知道:

  1. 实施Google帐户关联的正确方法是什么?Google帐户关联提供了哪些通过Dialogflow注册/validation用户(即从初始查询到Google登录,返回Dialogflow,再到我的ASP.NET Core的数据流是什么样的API处理程序)。
  2. 帐户链接是否会将标题中的持有者令牌返回给Dialogflow,从而返回给我的处理程序? 或者我是否必须解析originalRequest JSON对象以获取用户信息,然后针对身份提供程序对其进行validation?
  3. 如何从我的webhook(ASP.NET Core API)中的Dialogflow请求中获取用户的信息? 我是否必须解析originalRequest JSON对象以获取用户信息? 根据我的理解,从这个很棒的教程 ,应该在validationJWT令牌后填充HttpContext 。 目前尚不清楚的是,如何从Dialogflow和Google帐户链接中获取令牌。

我感谢您提供的任何帮助或指导,以实现从Dialogflow到我的.NET webhook的用户身份validation/授权。

很多问题。 让我们一个接一个地尝试清理一些东西。

在Google智能助理和我的系统之间实施Google帐户关联的正确方法是什么?

首先 – 您需要了解帐户关联什么。

它允许您为授权用户访问服务的方式提供方法。 Google使用此function将Google智能助理帐户与您系统上的帐户相关联。

由于这是针对您的系统的,因此“正确的方法”取决于您的基础架构。 但总的来说 – 这意味着您将发布OAuth令牌供Google使用并交回您的webhook。 有关预期内容的详细信息,请参阅Google文档中的操作 。

要明确 – 您需要成为OAuth服务器

Google帐户链接通过Dialogflow注册/validation用户是什么意思?

没有。

好吧,大多数没什么。

如果用户尚未拥有该用户的授权,它所做的就是将用户关闭到OAuth授权端点。 它希望你交回它将使用的令牌。

帐户链接是否会将标题中的持有者令牌返回给Dialogflow,从而返回给我的处理程序? 或者我必须解析originalRequest JSON对象…

身份validation令牌(您已发布,因为您是OAuth服务器)将在originalRequest.data.user.accessToken的JSON对象中发送。

…获取用户信息然后针对身份提供商进行validation?

您有责任validation访问令牌是您发出的令牌并且仍然有效,然后……随心所欲地做任何事情。 但是,假设您将使用它来确定用户是谁。 你如何做到这一点(在表中查找,将其传递给另一个服务,从JWT获取信息等)完全取决于你以及你如何实现OAuth服务以及令牌的格式是什么。

如何从Dialogflow请求中获取用户的信息?

这取决于您期望的“用户信息”。 默认情况下,Google和Dialogflow上的操作不会向您提供任何信息,除非您提出要求 – 并且您不通过帐户关联提出要求。 您可以通过使用Google上的操作权限系统来申请 。 但即使是许可系统也不会向您提供您可能想要的信息(大多数人都想要电子邮件地址 – 您无法请求)。

如果您想通过帐户关联来执行此操作,则需要在设置帐户时请求该信息。

我是否必须解析originalRequest JSON对象以获取用户信息?

如果您正在使用权限,那么是。

如果您不是,那么虽然您可以解析JSON以获取发送的内容(匿名用户ID),但它不会仅仅通过其Google智能助理帐户向您提供信息。

帐户关联不是要访问他们在Google帐户上的操作 – 而是在他们通过Google智能助理访问您的服务时访问系统中的帐户。

validationJWT令牌后应填充HttpContext

该文章讨论了如何将Firebase身份validation用作OAuth服务器以及如何将其作为客户端进行处理。

谷歌的行动扭转了局面。 需要成为服务器。 是客户。

当然可以构建一个使用Firebase身份validation的服务器来validation用户是否符合您的要求,并将JWT令牌作为您的承载令牌发布,但这些都不是要求。

Interesting Posts