如何在Facebook Messenger上使用MS Bot Framework创建快速回复?

问题描述 投票:0回答:2

我一直在使用Node.js和MS Bot Framework(3.0)来完成我的机器人开发需求。

我的一个需求是请求用户与机器人共享其电子邮件地址。 Facebook正是为此提供了Quick Replies API。

我很难理解如何利用框架来创建带有快速回复选项的自定义消息。

我的第一次尝试之一是使用custom channel data将原生元数据传递到通道 我已经成功实现了Messenger平台支持的各种templates,但quick replies与按钮,列表和其他模板相比是一种其他的野兽。目前我很难使用框架提供的工具创建quick reply message

请指出我正确的方向。

node.js facebook botframework facebook-messenger
2个回答
5
投票

您可以通过BotFramework的V3中的源数据或通过框架的V4中的通道数据发送Facebook快速回复。请参阅以下两个示例:

Node

高中

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);

CSharp

高中

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);

希望这可以帮助!


0
投票

在v3上,您只需将facebook定义的quick_reply模板的JSON添加到channeldata作为JSON对象(JObject)

reply.channelData = new JOBject(“[JSON HERE]”);

© www.soinside.com 2019 - 2024. All rights reserved.