2017-03-28 4 views
0

starten Ich habe einen Bot mit 340 Benutzern zur Zeit und einige von ihnen verwenden eine ältere Version. Vor kurzem habe ich die Version auf meiner Seite aktualisiert und eine Nachricht an den Benutzer gesendet und als sie versuchten, zu antworten, sie bekam eine SMS-Nachricht: „Tut mir Leid der Dienst wurde aktualisiert und wir müssen anfangen, über“BotFramework Entschuldigung der Service wurde aktualisiert und wir müssen über

enter image description here

I Verstehe das mit der upgradeDialogId. Ich habe es bereits und ich bin mir nicht sicher, warum es nicht ausgelöst wird.

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") 
} 

Fehle ich etwas in Bezug auf die Upgrade-Dialoglogik?

Vielen Dank für Ihre Hilfe im Voraus

Antwort

0

ich in dem Middleware.ts dieser Code-Schnipsel gefunden

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(); 
       } 
      } 
     } 
    } 

Hinweis Datei der sonst, wenn ein Teil, wo FirstRun Dialog aufgerufen wird. Ich denke, es gibt hier einen Fehler im Code und upgradeDialogId sollte stattdessen aufgerufen werden. Wer kann das bestätigen?

Verwandte Themen