我们如何从JSON对象动态填充facebook messenger的快速回复?

时间:2016-10-13 07:13:47

标签: facebook bots botframework facebook-messenger chatbot

我非常喜欢Facebook快速回复功能,这有助于我们指导与用户的对话。 我的背景是我正在构建一个表单填充机器人。在将用户重定向到适当的页面之前,有一些问题需要用户询问。问题及其选项来自JSON对象。 我想将问题作为短信和选项作为快速回复。这将极大地帮助用户快速回答几个问题并填写表格。 我陷入困境,我需要用问题填充快速回复选项'选项。 我正在使用Microsoft Bot构建器框架来构建机器人

1 个答案:

答案 0 :(得分:1)

通过ChannelData(C#)/ sourceEvent(节点)字段支持频道的特定功能(例如来自Facebook的快速回复)。因此,您需要通过它发送特定信息,以便Facebook了解它并做出相应的反应。

Here是一个快速示例,展示了如何发送Facebook的快速回复。

var channelData = JObject.FromObject(new
        {
            quick_replies = new dynamic[]
            {
                new
                {
                    content_type = "text",
                    title = "Blue",
                    payload = "DEFINED_PAYLOAD_FOR_PICKING_BLUE",
                    image_url = "https://cdn3.iconfinder.com/data/icons/developperss/PNG/Blue%20Ball.png"
                },
                new
                {
                    content_type = "text",
                    title = "Green",
                    payload = "DEFINED_PAYLOAD_FOR_PICKING_GREEN",
                    image_url = "https://cdn3.iconfinder.com/data/icons/developperss/PNG/Green%20Ball.png"
                },
                new
                {
                    content_type = "text",
                    title = "Red",
                    payload = "DEFINED_PAYLOAD_FOR_PICKING_RED",
                }
            }
        });

        reply.ChannelData = channelData;

您还可以在此blog post中找到有关如何在BotFramework中使用新Facebook功能的更多详细信息。

请注意,在快速回复的特定情况下,BotFramework团队正在库中添加对它们的支持。 commit仍在开发分支中;所以它尚未公开(您仍然可以构建库并引用它而不是公共NuGet)