2016-04-02 15 views
1

Ich erstelle einen einfachen High-Low-Chat-Bot, mit Microsoft Bot Framework, die Sie eine Zufallszahl erraten lässt. Ich habe mich entschieden, rekursive Dialoge zu verwenden; Wenn ich jedoch eine Nachricht mit session.send sende, wird der Dialog beendet. Wie kann ich eine Nachricht senden, die den Dialog nicht beendet?Microsoft Bot Framework - Senden einer Nachricht während eines Dialogs

bot.add('/max-num', [ 
 
\t function (session) { 
 
\t \t builder.Prompts.number(session, "What's the max number?") 
 
\t }, 
 
\t function (session, results) { 
 
\t \t var max = results.response; 
 
\t \t session.userData.max = max; 
 
\t \t session.userData.num = Math.ceil(Math.random() * max) 
 
\t \t session.userData.round = 1; 
 
\t \t session.send("I choose a number between 1 and " + max + " inclusively!"); 
 
\t \t session.replaceDialog('/round'); 
 
\t } 
 
]); 
 
bot.add('/round', [ 
 
\t function (session) { 
 
\t \t builder.Prompts.number(session,"Guess a number") 
 
\t }, 
 
\t function (session, results) { 
 
\t \t // function vars 
 
\t \t var round = session.userData.round; 
 
\t \t var target = session.userData.num; 
 
\t \t var guess = results.response; 
 
\t \t 
 
\t \t // high/low logic 
 
\t \t if (guess === target) { // Winning Case 
 
\t \t \t session.send("Wow you got it in " + round + (round === 1 ? "round" : "rounds")); 
 
\t \t \t session.endDialog(); 
 
\t \t } else { // Losing case 
 
\t \t \t if (guess > target) 
 
\t \t \t \t session.send("Your guess was too high!"); 
 
\t \t \t else if (guess < target) 
 
\t \t \t \t session.send("Your guess was too low!"); 
 

 
\t \t \t session.replaceDialog("/round"); 
 
\t \t } 
 
\t } 
 
])

Antwort

1

können Sie Benutzer zu einer Eingabe aufgefordert und für Benutzer Eingang builder.Prompts.text() warten, oder Sie können ein Kind Dialog beginnen, die session.send verwenden („“) sich selbst beenden und zum Elternteil zurückkehren.

Verwandte Themen