Próbuję wyświetlić przyciski wyboru miasta dla użytkownika, tak jak mam następujące miasta: cleveland, columbus, delaware, mayfield
Jak pokazać je jako przyciski w botframework? Mogę to zrobić za pomocą formularzy takich jak:
[Prompt("Please select what {&} you are in? {||}")]
public City? City;
public static IForm<SandwichOrder> BuildForm()
{
return new FormBuilder<SandwichOrder>()
.Message("Welcome to the simple City bot!")
.Build();
}
Ale aplikacja, którą tworzę, nie jest formularzem i nie ma już zsynchronizowanych pytań. Więc jaki jest inny prostszy sposób pokazania miast do wyboru przez użytkownika?
Odpowiedzi:
1 dla odpowiedzi № 1Możesz używać kart.
Po prostu dodaj trochę do obiektu aktywności i poczekaj na odpowiedź użytkownika.
Mają jakieś specjalne Karta paragonu (karta, która pozwala użytkownikowi dostarczyć fakturę lub paragon).
Bot Builder dla .NET / Usługa łącznika / Załączniki, karty i akcje
https://docs.botframework.com/en-us/csharp/builder/sdkreference/attachments.html
Przykład dodawania pary przycisków:
Activity reply = activity.CreateReply($"");
reply.Recipient = activity.From;
reply.Type = "message";
reply.Attachments = new List<Attachment>();
List<CardAction> cardButtons = new List<CardAction>();
CardAction cityBtn1 = new CardAction()
{
Value = "cleveland",
Type = "postBack",
Title = "Cleveland"
};
cardButtons.Add(cityBtn1);
CardAction cityBtn2 = new CardAction()
{
Value = "columbus",
Type = "postBack",
Title = "Columbus"
};
cardButtons.Add(cityBtn2);
HeroCard plCard = new HeroCard()
{
Title = "Please select what city you are in?",
Buttons = cardButtons
};
Attachment plAttachment = plCard.ToAttachment();
reply.Attachments.Add(plAttachment);
0 dla odpowiedzi nr 2
zależy od używanego kanału, jeśli twoja właściwość jest wyliczona, czat internetowy wyświetli je jako listę do wyboru, a slack pokaże przyciski