Проблема со списком кнопок в Microsoft Bot Builder для .NET — канал: Facebook Messenger

Я пытаюсь добавить список кнопок, как внутри карты героя. Он отлично работает в 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);
}

Вывод в эмуляторе бота

Вывод в Messenger

В Messenger последняя кнопка добавляется в виде карусели, весь текст кнопки обрезается.

Пожалуйста, помогите мне исправить это.

В мессенджере


person Akash Pavate    schedule 22.06.2017    source источник


Ответы (1)


Согласно документации, заголовок кнопки имеет ограничение в 20 символов.

Кроме того, если у вас есть более 3 кнопок, Facebook разделит их как Шаблон кнопки ожидает от 1-3 кнопок.

Вам нужно будет ограничить количество символов до 20, поэтому вместо "Я хочу заказать пиццу" вы можете использовать, например, "Заказать пиццу". Чтобы добавить больше кнопок; вы можете изучить быстрые ответы, поскольку ограничение составляет 11 «кнопок» (но у вас все еще есть ограничение в 20 символов в заголовке). Вы можете проверить этот другой сообщение чтобы узнать больше о быстрых ответах.

person Ezequiel Jadib    schedule 22.06.2017
comment
Есть ли способ добавить 4 действия, а также добавить то же предложение, что и текст??? - person Akash Pavate; 22.06.2017
comment
вам нужно ограничить количество символов до 20, поэтому вместо «Я хочу заказать пиццу» просто используйте, например, «Заказать пиццу». Чтобы добавить больше кнопок; вы можете изучить Быстрые ответы (developers.facebook. com/docs/messenger-platform/). Ограничение составляет 11 (но у вас все еще есть ограничение в 20 символов в заголовке). Вы можете проверить stackoverflow.com/questions/40230436/. Пожалуйста, проголосуйте и установите как ответ - person Ezequiel Jadib; 22.06.2017
comment
голосование, потому что нет причин, по которым этот действительный ответ от @EzequielJadib получил отрицательный балл - person Nicolas R; 23.06.2017