Express Session无法与DialogFlow一起使用

时间:2018-10-03 15:00:16

标签: express session dialogflow

我已经在Heroku上部署了Express应用程序,在地址上设置了Web钩子,并使用DG代理向Heroku上的端点发出了发布请求。 Webhook将参数的主体传递给另一个Web服务,这很好。我需要跟踪Web服务传递回的cookie,以便将其发送回以保持对话的上下文。

目前,我正在使用Express的会话ID(req.session.id)和cookie值将文件保存在服务器上。如果我通过Postman或通过表单进行POST调用,一切都会正常,因此,假设Web应用程序正确跟踪了会话。 相反,如果我使用DialogFlow代理测试Webhook,则每个到Heroku端点的请求都会收到一个新的会话ID。 我不明白为什么...我想念什么?

1 个答案:

答案 0 :(得分:0)

我不认为您可以依靠DialogFlow的请求为您维护cookie。

我们正在使用DialogFlow,Google Actions和Node.js。我们通过在返回的响应中包含数据来保留会话信息,然后在下一个请求到达时读取该数据。在编写响应时,我们将会话数据(JSON)放在assistant.data属性上。收到请求时,我们从传入的event.body中获取会话数据。

我们曾考虑过尝试根据传入请求的唯一ID(例如用户ID或设备ID)进行操作,但并未进行追踪。