如何处理来自 Facebook sourceEvent botframework 节点的回传
How to handle postback from Facebook sourceEvent botframework node
因此,如标题中所述,我需要弄清楚如何处理来自用户 tapping/clicking facebook Messenger 中的按钮的回发。我知道这张卡片可以用机器人生成器卡片处理,但我也想测试一些其他元素。请看以下代码:
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));
}
]);
所以基本上一旦用户单击 'GO' 按钮,我想在节点中操作另一个对话框,卡片可以工作,但我只是不知道如何处理它。我认为它可能适用于瀑布,但显示的代码没有 return 任何东西。
非常感谢,
所以我已经把我的头从云端拉出来并回答了我自己的问题。线索在按钮类型中: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.");
});
希望这对某人有所帮助。
干杯。
因此,如标题中所述,我需要弄清楚如何处理来自用户 tapping/clicking facebook Messenger 中的按钮的回发。我知道这张卡片可以用机器人生成器卡片处理,但我也想测试一些其他元素。请看以下代码:
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));
}
]);
所以基本上一旦用户单击 'GO' 按钮,我想在节点中操作另一个对话框,卡片可以工作,但我只是不知道如何处理它。我认为它可能适用于瀑布,但显示的代码没有 return 任何东西。
非常感谢,
所以我已经把我的头从云端拉出来并回答了我自己的问题。线索在按钮类型中: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.");
});
希望这对某人有所帮助。
干杯。