2016-05-13 7 views
2

またはcancelを使用しているときに、CommandDialogダイアログを終了する方法を見つけようとしています。ユーザーがCommandDialogを終了する

var startCommands = new builder.CommandDialog(); 

bot.add('/', [ 
    function (session, results) { 
    session.send('Hello %s', session.userData.name); 

    // starting a dialog based on CommandDialog 
    session.beginDialog('/begin'); 
    }, 
    function (session, results) { 
    // This is where I want to be when dialog cancel of back is initiated by a user inside /begin 
    session.send("you are back at the main dialog, start finshing process") 
    session.beginDialog('/finish'); 
    } 
]); 

// defining a dialog for CommandDialog class 
bot.add('/begin', startCommands) 
bot.add('/finish', finishCommands) 

startCommands.matches('yo', [ 
    function (session) { 
    session.send('yo-yo'); 
    } 
]); 
startCommands.matches('tu', [ 
    function (session) { 
    session.send('tu-tu'); 
    } 
]); 
startCommands.matches('.*', [ 
    function (session) { 
    session.send('any-any'); 
    session.endDialog(); 
    } 
]); 

答えて

0

ダイアログ、CommandDialogを終了するか、またはそうでなければ、session.endConversation()を呼び出すダイアログハンドラにtriggerActionを使用します。

たとえば、ユーザがexitまたはquitというメッセージを送信したときに会話を終了させるダイアログがあります(この例ではexit)。

bot.dialog('exit', function (session) { 
    session.endConversation('Goodbye!'); 
}).triggerAction({ matches: /(quit|exit)/i }); 
関連する問題