2017-03-28 2 views
0

현재 340 명의 사용자가있는 봇과 그 중 일부는 이전 버전을 사용하고 있습니다. 최근에 나는 내 옆에있는 버전을 업데이트하고 사용자에게 메시지를 보내 그들이 답장을하려고 할 때, 그들이 말하는 메시지 얻었다 "죄송합니다 서비스가 업그레이드 된을 우리는 시작해야"BotFramework 서비스가 업그레이드되어 다시 시작해야합니다.

enter image description here

I을 이것이 upgradeDialogId와 관련이 있다는 것을 이해하십시오. 나는 이미 그것을 가지고 있으며 나는 그것이 유발되지 않는 이유를 확신하지 못한다.

const 
    connector = new builder.ChatConnector({ 
     appId: process.env.MICROSOFT_APP_ID, 
     appPassword: process.env.MICROSOFT_APP_PASSWORD, 
     gzipData: true 
    }) 

const 
    bot = new builder.UniversalBot(connector) 
     .set('autoBatchDelay', 0) 
     .set('dialogErrorMessage', common.error().text) 
bot.use(builder.Middleware.dialogVersion({ 
    version: VERSION, 
    resetCommand: /^reset/i 
})) 

bot.use(builder.Middleware.firstRun({ 
    version: VERSION, 
    dialogId: '/firstRun', 
    upgradeDialogId: '/upgrade' 
})) 
bot.dialog('/upgrade', upgrade) 
function upgrade(session, args) { 
    session.endDialog("We just upgraded to a better version") 
} 

업그레이드 대화 상자 논리와 관련하여 누락 된 것이 있습니까?

내가 firstRun 대화 상자가 호출되는 경우 일부 경우 Middleware.ts에서이 코드는

static firstRun(options: IFirstRunOptions): IMiddlewareMap { 
     return { 
      botbuilder: (session, next) => { 
       if (session.sessionState.callstack.length == 0) { 
        // New conversation so check first run version 
        var cur = session.userData[consts.Data.FirstRunVersion] || 0.0; 
        var curMajor = Math.floor(cur); 
        var major = Math.floor(options.version); 
        if (major > curMajor) { 
         // Run user through full first run experience 
         session.beginDialog(consts.DialogId.FirstRun, <IFirstRunDialogArgs>{ 
          version: options.version, 
          dialogId: options.dialogId, 
          dialogArgs: options.dialogArgs 
         }); 
        } else if (options.version > cur && options.upgradeDialogId) { 
         // Run user through upgrade experience 
         session.beginDialog(consts.DialogId.FirstRun, <IFirstRunDialogArgs>{ 
          version: options.version, 
          dialogId: options.upgradeDialogId, 
          dialogArgs: options.upgradeDialogArgs 
         }); 
        } else { 
         next(); 
        } 
       } else { 
        next(); 
       } 
      } 
     } 
    } 

주목하라 다른 파일을 찾을 사전

답변

0

에 도움을 주셔서 감사합니다. 여기에 코드에 버그가 있고 upgradeDialogId가 대신 호출되어야한다고 생각합니다. 이것을 확인할 수있는 사람은 누구입니까?