我有一个使用MS bot框架构建的机器人,使用库结构。
我正在尝试捕获消息的对话框名称+库,之前它被路由到对话框。 (用于分析目的)
是否有可以帮助我做到这一点的中间件?
我尝试了routing
的{{1}}中间件,但它似乎是在选择对话框之前运行。
答案 0 :(得分:0)
此处一个可能的选择是使用ISessionMiddleware。
botbuilder: function (session, next) {
console.log(session.message.text);
next();
}
这将允许您访问会话。这将在消息绑定到特定会话后执行,并提供查看消息和会话状态(用户在可用对话框中等)的选项,然后决定如何继续。
答案 1 :(得分:0)
似乎bot.onDisambiguateRoute
是解决方案。
var route
在这种情况下包含路由名称/库,除此之外还有对话框参数。 see the docs for more info
示例代码:
bot.onDisambiguateRoute(function (session, routes) {
// Route message as normal
var route = builder.Library.bestRouteResult(routes, session.dialogStack(), bot.name);
// *** log route
if (route) {
bot.library(route.libraryName).selectRoute(session, route);
} else {
// Just let the active dialog process the message
session.routeToActiveDialog();
}
}
});