Microsoft Bot Builder for .NET中的按钮列表问题 - 频道:Facebook Messenger

时间:2017-06-22 19:26:33

标签: c# bots botframework facebook-messenger-bot

我正在尝试在herocard中添加一个按钮列表。它在Bot Emulator中工作正常,但在Messenger Channel中不起作用。这是我的代码。

public static IList<Attachment> ToAttachmentList(this List<string> items)
{
        var attachments = new List<Attachment>();
        var actions = new List<CardAction>();

        foreach (var item in items)
        {
            actions.Add(new CardAction(ActionTypes.ImBack, title: item, value: item));
        }

        var heroCard = new HeroCard
        {
            Buttons = actions
        };

        attachments.Add(heroCard.ToAttachment());

        return attachments;
}

private async Task ShowOptions(IDialogContext context)
{
        var reply = context.MakeMessage();
        reply.Text = $"Here's what you can do.";
        reply.AttachmentLayout = AttachmentLayoutTypes.List;
        reply.Attachments = Messages.OrderingOptions.ToAttachmentList();

        await context.PostAsync(reply);
}

Output in Bot Emulator

Output in Messenger

在Messenger中,最后一个按钮被添加为Carousel,所有按钮文本都被截断。

请帮我解决这个问题。

In Messenger

1 个答案:

答案 0 :(得分:2)

根据documentation,按钮标题的限制为20个字符。

此外,如果你有更多的3个按钮,Facebook会将它们拆分为Button template期望的1-3个按钮。

您需要将字符数限制为20,因此我不想&#34;我想订购披萨&#34; ,您可能想要使用&#34;订购披萨& #34; 例如。添加更多按钮;您可能想要探索Quick Replies,因为限制是11&#34;按钮&#34; (但你仍然对标题有20个字符限制)。您可以查看其他post以了解有关快速回复的详情。