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

时间:2019-02-13 17:15:09

标签: node.js facebook botframework facebook-messenger

一段时间以来,我一直在使用Node.js和MS Bot Framework(3.0)满足我的机器人开发需求。

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

我很难理解应该如何利用该框架通过快速回复选项来创建自定义消息。

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

请指向正确的方向。

2 个答案:

答案 0 :(得分:3)

您可以通过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);

希望这会有所帮助!

答案 1 :(得分:0)

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

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