Создайте «динамическое» меню с помощью Azure Chatbot - PullRequest
0 голосов
/ 02 июля 2018

В настоящее время я работаю с чатботом MS в Azure, используя node.js Я нахожусь в точке, где мне нужно отобразить меню для пользователя, о различных вариантах, которые могут меняться время от времени.

Я получаю значения через вызов API и помещаю их во вкладку, затем создаю меню и отправляю его пользователю. Проблема: я не могу создать динамическое меню из моего массива

Вот что я попробовал:

menu_choices = [x,y,z]
var menu = new builder.Message(session)
                        .text("This is the menu")
                        .suggestedActions(
                        builder.SuggestedActions.create(
                                session, [ function(){
                                        menu_choices.forEach(function(choice){
                                             builder.CardAction.imBack(session, "I want to select " + choice, choice)                                                
                                        })}
                                    ]));            
        session.send(menu);

Выглядит странным использование функции внутри Предлагаемых действий, но я не понимаю, как я могу решить это, или даже если это возможно или нет.

Спасибо и хорошего дня!

1 Ответ

0 голосов
/ 06 июля 2018

После работы со службой поддержки Microsoft мы нашли способ (ну, в основном, хаха) сделать это:

array_Menu = [choice1,choice2,choice3]
var menu = new builder.Message(This is the menu :")
                        .suggestedActions(
                        builder.SuggestedActions.create(
                                session, 
                                array_Menu.map(function(choice) {
                                    return builder.CardAction.imBack(session, "This is a choice : " + choice, choice)
                                }
                    )
                )
            );          
        session.send(menu);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...