我一直在使用Node.js和MS Bot Framework(3.0)来完成我的机器人开发需求。
我的一个需求是请求用户与机器人共享其电子邮件地址。 Facebook正是为此提供了Quick Replies API。
我很难理解如何利用框架来创建带有快速回复选项的自定义消息。
我的第一次尝试之一是使用custom channel data将原生元数据传递到通道 我已经成功实现了Messenger平台支持的各种templates,但quick replies与按钮,列表和其他模板相比是一种其他的野兽。目前我很难使用框架提供的工具创建quick reply message。
请指出我正确的方向。
您可以通过BotFramework的V3中的源数据或通过框架的V4中的通道数据发送Facebook快速回复。请参阅以下两个示例:
高中
await turnContext.sendActivity({
text: 'What is your email?',
channelData: {
"quick_replies":[
{
"content_type": "user_email"
}
]
}
});
卢比
var message = new botbuilder.Message(session)
.text('What is your email?')
.sourceEvent({
facebook: {
"quick_replies":[
{
"content_type": "user_email"
}
]
}
});
session.send(message);
高中
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添加到channeldata作为JSON对象(JObject)
reply.channelData = new JOBject(“[JSON HERE]”);