【问题标题】:How to handle postback from Facebook sourceEvent botframework node如何处理来自 Facebook sourceEvent botframework 节点的回发
【发布时间】:2016-08-31 08:32:31
【问题描述】:

所以正如标题中提到的,我需要弄清楚如何处理来自用户点击/单击 facebook Messenger 中的按钮的回发。我知道这张卡可以用 bot builder 卡处理,但我也想测试一些其他元素。请看以下代码:

bot.dialog('/', [
function (session) {
    var msg = new builder.Message(session).sourceEvent({
            facebook: {
                    notification_type: "REGULAR",
                    attachment: {
                        type: "template",
                        payload: {
                            template_type: "generic",
                            elements: [{
                                title: "Title here",
                                image_url: "http://docs.botframework.com/images/demo_bot_image.png",
                                subtitle: "Subtitle here",
                                buttons: [{
                                    type: "postback",
                                    title: "GO",
                                    payload: "dosomething"
                                }]
                            }]
                        }
                    }
                }
        });
    session.send(msg);
},
function(session, results){
    session.send(JSON.stringify(results));
    session.send(JSON.stringify(session));
}
]);

所以基本上一旦用户单击“开始”按钮,我想在节点中操作另一个对话框,该卡可以工作,但我只是不知道如何处理它。我认为它可能适用于瀑布,但显示的代码没有返回任何内容。

非常感谢,

【问题讨论】:

    标签: node.js facebook botframework


    【解决方案1】:

    所以我已经从云中抽出头来,回答了我自己的问题。线索在按钮类型中:type: "postback"

    请参阅以下内容:

    bot.dialog('/', [
        function (session) {
            var msg = new builder.Message(session).sourceEvent({
                    facebook: {
                            notification_type: "REGULAR",
                            attachment: {
                                type: "template",
                                payload: {
                                    template_type: "generic",
                                    elements: [{
                                        title: "Great title",
                                        image_url: "http://docs.botframework.com/images/demo_bot_image.png",
                                        subtitle: "Even better subtitle",
                                        buttons: [{
                                            type: "postback",
                                            title: "GO",
                                            payload: "action?stacktest"
                                        }]
                                    }]
                                }
                            }
                        }
                });
            session.send(msg);
        }
    ]);
    

    所以我所做的只是发回操作“stacktest”并使用以下内容进行处理:

    bot.beginDialogAction('stacktest', '/stacktest');
    bot.dialog('/stacktest', function(session){
        session.send("Woot, stacktest worked a treat.");
    });
    

    希望这对某人有所帮助。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      相关资源
      最近更新 更多