2017-12-21 4 views
0

라이브러리 구조를 사용하여 MS bot 프레임 워크로 빌드 된 봇을 가지고 있습니다.라우트되기 전에 대화명 잡기 - 미들웨어

대화 상자로 라우팅되기 전에 메시지의 대화 상자 이름 + 라이브러리 을 잡으려고합니다. (분석 목적으로)

내가 할 수있는 미들웨어가 있습니까?

routing 미들웨어는 UniversalBot으로 시도했지만 대화 상자를 선택하기 직전 인 것 같습니다.

답변

0

bot.onDisambiguateRoute이 해결책 인 것 같습니다.

이 경우에는 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(); } } });

0

여기서 가능한 옵션은 ISessionMiddleware 일 수 있습니다.

botbuilder: function (session, next) { 
     console.log(session.message.text); 
     next(); 
    } 

이렇게하면 세션에 액세스 할 수 있습니다. 메시지가 특정 세션에 바인딩되면 실행되고 메시지 및 세션 상태 (사용자가 대화 상자 등을 볼 수있는 곳)를 살펴보고 진행 방법을 결정할 수있는 옵션이 제공됩니다.

+0

@Ezequiel Jadib 이봐, 그것이로 라우팅되는 대화 상자를 포함하지 않는 세션이 어떻게하려고 –

+0

을 (아마 그것은 선택하기 전에 실행) 보인다 대화 상자를 보려면? –

+0

내 대답 좀보세요. –