2

以下是自适应对话框的示例

            const userProfileAdaptiveDialog = new AdaptiveDialog(ROOT_DIALOG).configure({
            generator: new TemplateEngineLanguageGenerator(lgFile),
            triggers: [
                new OnBeginDialog([
                    // Ask for user's age and set it in user.userProfile scope.
                    new TextInput().configure(
                        {
                            // Set the output of the text input to this property in memory.
                            property: new StringExpression('user.userProfile.Transport'),
                            prompt: new ActivityTemplate('${ModeOfTransportPrompt()}')
                        }),
                    new TextInput().configure(
                        {
                            property: new StringExpression('user.userProfile.Name'),
                            prompt: new ActivityTemplate('${AskForName()}')
                        }),
                    // SendActivity supports full language generation resolution.
                    // See here to learn more about language generation
                    // https://aka.ms/language-generation
                    new SendActivity('${AckName()}'),
                    new ConfirmInput().configure(
                        {
                            property: new StringExpression('turn.ageConfirmation'),
                            prompt: new ActivityTemplate('${AgeConfirmPrompt()}')
                        }),
                    new IfCondition().configure(
                        {
                            // All conditions are expressed using the common expression language.
                            // See https://aka.ms/adaptive-expressions to learn more
                            condition: new BoolExpression('turn.ageConfirmation == true'),
                            actions: [
                                new NumberInput().configure(
                                    {
                                        prompt: new ActivityTemplate('${AskForAge()}'),
                                        property: new StringExpression('user.userProfile.Age'),
                                        // Add validations
                                        validations: [
                                            // Age must be greater than or equal 1
                                            'int(this.value) >= 1',
                                            // Age must be less than 150
                                            'int(this.value) < 150'
                                        ],
                                        invalidPrompt: new ActivityTemplate('${AskForAge.invalid()}'),
                                        unrecognizedPrompt: new ActivityTemplate('${AskForAge.unRecognized()}')
                                    }),
                                new SendActivity('${UserAgeReadBack()}')
                            ],
                            elseActions: [
                                new SendActivity('${NoAge()}')
                            ]
                        }),
                    new IfCondition().configure(
                        {
                            condition: new BoolExpression('turn.activity.channelId == "msteams"'),
                            actions: [
                                // This attachment prompt example is not designed to work for Teams attachments, so skip it in this case
                                new SendActivity('Skipping attachment prompt in Teams channel...')
                            ],
                            elseActions: [
                                new AttachmentInput().configure(
                                    {
                                        prompt: new ActivityTemplate('${AskForImage()}'),
                                        property: new StringExpression('user.userProfile.picture'),
                                        validations: [
                                            'this.value.contentType == "image/jpeg" || this.value.contentType == "image/png"'
                                        ],
                                        invalidPrompt: new ActivityTemplate('${AskForImage.Invalid()}')
                                    })
                            ]
                        }),
                    new ConfirmInput().configure(
                        {
                            prompt: new ActivityTemplate('${ConfirmPrompt()}'),
                            property: new StringExpression('turn.finalConfirmation')
                        }),
                    // Use LG template to come back with the final read out.
                    // This LG template is a great example of what logic can be wrapped up in LG sub-system.
                    new SendActivity('${FinalUserProfileReadOut()}') // examines turn.finalConfirmation
            
                }])
            ]
        });

它被配置为与瀑布对话框不同的对象,因此我无法在对话框中编写任何控制和控制台语句,我想获取用户输入并基于此我必须问下一个问题我该怎么做?

我如何控制台记录用户输入?

4

0 回答 0