2017-08-03 2 views
0

Ich versuche, die Antwort auf builder.Prompt.choice (...); Die Auswahlliste wird geladen und wenn ich eine Auswahl treffe passiert nichts.So erhalten Sie Ergebnisse von Eingabeaufforderung in Bot-Framework-Dialog

Aber es scheint nicht wie function(session, results) jemals ausgeführt wird. session.send("Choice Made) und der andere Code wird nicht ausgeführt. Wie kann ich meine Antwort bekommen? Ich bin mir nicht sicher, was hier falsch läuft. Es sieht genauso aus wie Code aus der Dokumentation.

bot.dialog('LifecycleDialog', function (session, args) { 

     var softwareEntity = builder.EntityRecognizer.findEntity(args.intent.entities, 'Software'); 
     var choices = Object.keys(SoftwareDict[softwareEntity.entity]); 

     builder.Prompts.choice(session, "Select a version by typing the number: ", choices, "Sorry I don't see that version."); 
     }, 
     function (session, results) { 
      session.send("Choice Made"); //DOES NOT WORK 
       session.endDialogWithResult(results); //DOES NOT WORK 

}).triggerAction({ 
    matches: 'LifecycleStatus' 
}); 
+0

Ist die eckigen Klammern möglich um dies mit einer triggerAction zu tun? Alle Beispiele sind nur ein Dialog mit einer etwas anderen Syntax. –

Antwort

0

Ich fand es heraus. Der einzige Unterschied ist, dass der Dialog Klammern [] anstelle von geschweiften Klammern {} haben sollte.

bot.dialog('LifecycleDialog', function (session, args) [ 

     var softwareEntity = builder.EntityRecognizer.findEntity(args.intent.entities, 'Software'); 
     var choices = Object.keys(SoftwareDict[softwareEntity.entity]); 

     builder.Prompts.choice(session, "Select a version by typing the number: ", choices, "Sorry I don't see that version."); 
     }, 
     function (session, results) { 
      session.send("Choice Made"); //DOES NOT WORK 
       session.endDialogWithResult(results); //DOES NOT WORK 

]).triggerAction({ 
    matches: 'LifecycleStatus' 
}); 
+0

Sie können die ausgewählte Auswahl im 'results.response' Objekt im Dialoghandler nach der Eingabeaufforderung finden. – nilsw

+0

geschweifte Klammern '{}' waren in Ordnung, die Funktionen im Dialog sollten in quadratischen '[]' geschweiften Klammern eingeschlossen sein. – chandan

1

Sie sollten es am Anfang der Funktionen Teil dh nach dem Komma Like " 'LifecycleDialog', [ Funktion (Session, args)"

bot.dialog('LifecycleDialog', [ 
    function (session, args) { 

    var softwareEntity = builder.EntityRecognizer.findEntity(args.intent.entities, 'Software'); 
    var choices = Object.keys(SoftwareDict[softwareEntity.entity]); 

    builder.Prompts.choice(session, "Select a version by typing the number: ", choices, "Sorry I don't see that version."); 
    }, 
    function (session, results) { 
     session.send("Choice Made"); //DOES NOT WORK 
      session.endDialogWithResult(results); //DOES NOT WORK 
    } 

]).triggerAction({ 
matches: 'LifecycleStatus' 
}); 
Verwandte Themen