使用Azure Chatbot创建“动态”菜单

时间:2018-07-02 16:12:27

标签: node.js azure dynamic menu chatbot

我目前正在使用 node.js 在Azure上使用MS聊天机器人。 我现在需要为用户显示一个菜单,其中涉及可能会不时更改的不同选择。

我通过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);

在SuggestedActions中使用一个函数看起来很奇怪,但是我看不到如何解决这个问题,即使可能也无法解决。

谢谢,祝你有美好的一天!

1 个答案:

答案 0 :(得分:0)

在获得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);
相关问题