/ / Как да поискате DirectLine API от бутона на HeroCard? - asp.net-mvc, ботфрейм

Как да поискате DirectLine API от бутона на HeroCard? - asp.net-mvc, ботфрейм

Имам MVC проект, който използва .NET.

Има един бутон в картата на героя и искам да направя POST заявка към DirectLine API, като кликнете върху този бутон.

var heroCard = JsonConvert.DeserializeObject<HeroCard>(attachment.Content.ToString());

if (heroCard != null) {
objchat.ChatResponse += " " +  heroCard.Title + " " + heroCard.Subtitle;

if (heroCard.Images != null) {
IList<CardImage> cardImages = heroCard.Images;

foreach(var image in cardImages) {
objchat.ChatResponse += " " + RenderImageHTML(image.Url);
}
}

if (heroCard.Buttons != null) {
IList<CardAction> cardButtons = heroCard.Buttons;

foreach(var button in cardButtons) {
objchat.ChatMessage = button.Title;
objchat.ChatResponse += " " + "<input type="button" value="" + button.Title + "" >";
}
}
}

Отговори:

1 за отговор № 1

Може да имате бутона на вашата карта-герой да изпратите обратно своя бот / код на сървъра и да задействате заявката, когато ботът ви се справи с обратната поща.

Можете да видите документацията за postback () тук.

Уверете се, че си postback() повикването изпраща някакъв уникален низ, който вашият бот може да разпознае, в идеалния случай, нещо, което нормален потребител никога няма да изпрати.

postback(session, "thisIsMyUniquePostbackString")

След това можете да проверите в диалоговия прозорец

if( session.message.text === "thisIsMyUniquePostbackString ){
//HeroCard was tapped, send POST request...
}

Създадох a работен образец, който можете да проверите тук.

Моля, не че съм включил request-promise модул за въвеждане на HTTP POST заявка, но можете да използвате какъвто и да е метод / библиотека, която предпочитате.

Ето снимка на работния образец в действие:

въведете описанието на изображението тук