DialogFlow在身份验证后发回上下文吗?

时间:2018-07-27 03:44:41

标签: javascript api bots dialogflow

我很难解决如何从我的机器人连接到OAuth2 Freshbooks API的问题。目前,我已经设置了我的API,以便点击/ auth路由会将用户带到Freshbooks登录页面,并且一旦成功通过身份验证,令牌便会返回给用户。获得令牌后,用户可以在我的Web应用程序中获取所有发票。

现在,当我构建DialogFlow机器人时,该如何处理?我想到的是,用户首先点击/ auth路由,该路由返回授权URL,然后用户可以在浏览器中打开该URL,然后登录...但是登录后,如何返回机器人? >

成功登录后,我的api使用授权代码调用/ callback路由以获取令牌...但是由于这一切都在浏览器中进行,因此这不会返回给机器人。想。

什么是最好的方法?

另外,从我的API获取令牌后,该令牌是否应该存储在我的漫游器中的上下文中?

感谢您的帮助,如果这是一个初学者的问题,我们深感抱歉。我试着在网上找到答案,但我只是无法将答案包裹住。

1 个答案:

答案 0 :(得分:1)

假设您的OAuth服务配置正确,则无需担心任何这些。该过程大致如下:

  • 通过以下两种方式之一触发帐户关联:
    • 如果您需要一个关联的帐户来实现某种意图,则只需在Dialogflow项目的Google Assistant集成页面中选中该意图的Sign in required框即可。如果您为列出的所有调用选择此选项,则用户只有在链接了帐户后才能使用您的代理。
    • 另一种选择是手动调用sigin helper。可以在对话过程中的任何时候完成此操作,即不必将其与特定意图联系在一起。
  • 启动帐户关联过程后,Google助手会在应用内浏览器中加载您的登录页面。
  • 一旦用户授权了您的客户端,OAuth服务就应该像其他OAuth服务一样将用户重定向回客户端。在Google Assistant上,这是通过格式为https://oauth-redirect.googleusercontent.com/r/<google developer project ID>的重定向URL进行的。
  • 此后,Google Actions会以原始意图(触发帐户关联的意图)调用您的履行服务,只有这次才使用您服务的有效访问令牌。
  • 从现在开始,您从Google Actions收到的每个履行请求中都将包含一个访问令牌。您不必存储此令牌,应始终使用请求中发送的令牌。

有关更多详细信息,请参见Implement Account Linking文档。