0
현재 340 명의 사용자가있는 봇과 그 중 일부는 이전 버전을 사용하고 있습니다. 최근에 나는 내 옆에있는 버전을 업데이트하고 사용자에게 메시지를 보내 그들이 답장을하려고 할 때, 그들이 말하는 메시지 얻었다 "죄송합니다 서비스가 업그레이드 된을 우리는 시작해야"BotFramework 서비스가 업그레이드되어 다시 시작해야합니다.
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();
}
}
}
}
주목하라 다른 파일을 찾을 사전