如何在 Facebook Messenger 上使用 MS Bot Framework 创建快速回复?
How to create Quick Replies using MS Bot Framework on Facebook Messenger?
我一直在使用 Node.js 和 MS Bot Framework(3.0) 来满足我的机器人开发需求。
我的一个需求是请求用户与机器人共享其电子邮件地址。
Facebook 专门为此提供了 Quick Replies API。
我很难理解我应该如何使用该框架来创建带有快速回复选项的自定义消息。
我的第一个尝试是使用 custom channel data
将本机元数据传递到频道
我已经使用框架提供的工具成功实施了各种 templates which are supported by Messenger platform, but quick replies are sort of other beast compared to buttons, lists and other templates. currently i struggle to create a quick reply message。
请指出正确的方向。
您可以通过BotFramework V3中的源数据或框架V4中的通道数据发送Facebook快速回复。请参阅以下两个示例:
节点
V4
await turnContext.sendActivity({
text: 'What is your email?',
channelData: {
"quick_replies":[
{
"content_type": "user_email"
}
]
}
});
V3
var message = new botbuilder.Message(session)
.text('What is your email?')
.sourceEvent({
facebook: {
"quick_replies":[
{
"content_type": "user_email"
}
]
}
});
session.send(message);
CSharp
V4
Activity reply = turnContext.Activity.CreateReply();
reply.Text = "What is your location?";
reply.ChannelData = JObject.FromObject( new {
quick_replies = new object[]
{
new
{
content_type = "location",
},
},
});
await turnContext.SendActivityAsync(reply, cancellationToken);
希望对您有所帮助!
在 v3 上,您只需将 facebook 定义的 quick_reply 模板的 JSON 添加到通道数据中作为 JSON 对象 (JObject)
reply.channelData = new JOBject("[JSON 这里]");
我一直在使用 Node.js 和 MS Bot Framework(3.0) 来满足我的机器人开发需求。
我的一个需求是请求用户与机器人共享其电子邮件地址。
Facebook 专门为此提供了 Quick Replies API。
我很难理解我应该如何使用该框架来创建带有快速回复选项的自定义消息。
我的第一个尝试是使用 custom channel data
将本机元数据传递到频道
我已经使用框架提供的工具成功实施了各种 templates which are supported by Messenger platform, but quick replies are sort of other beast compared to buttons, lists and other templates. currently i struggle to create a quick reply message。
请指出正确的方向。
您可以通过BotFramework V3中的源数据或框架V4中的通道数据发送Facebook快速回复。请参阅以下两个示例:
节点
V4
await turnContext.sendActivity({
text: 'What is your email?',
channelData: {
"quick_replies":[
{
"content_type": "user_email"
}
]
}
});
V3
var message = new botbuilder.Message(session)
.text('What is your email?')
.sourceEvent({
facebook: {
"quick_replies":[
{
"content_type": "user_email"
}
]
}
});
session.send(message);
CSharp
V4
Activity reply = turnContext.Activity.CreateReply();
reply.Text = "What is your location?";
reply.ChannelData = JObject.FromObject( new {
quick_replies = new object[]
{
new
{
content_type = "location",
},
},
});
await turnContext.SendActivityAsync(reply, cancellationToken);
希望对您有所帮助!
在 v3 上,您只需将 facebook 定义的 quick_reply 模板的 JSON 添加到通道数据中作为 JSON 对象 (JObject)
reply.channelData = new JOBject("[JSON 这里]");