Asp.net mvc 如何从HeroCard的按钮请求DirectLineAPI?

Asp.net mvc 如何从HeroCard的按钮请求DirectLineAPI?,asp.net-mvc,botframework,Asp.net Mvc,Botframework,我有一个MVC项目正在使用.NET 在我的英雄卡中有一个按钮,我想通过单击该按钮向DirectLineAPI发出POST请求 var heroCard = JsonConvert.DeserializeObject<HeroCard>(attachment.Content.ToString()); if (heroCard != null) { objchat.ChatResponse += " " + heroCard.Title + " " + heroCard.Subt

我有一个MVC项目正在使用.NET

在我的英雄卡中有一个按钮,我想通过单击该按钮向DirectLineAPI发出POST请求

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 + "' >";
    }
  }
}

您可以让英雄卡上的按钮向您的机器人/服务器代码发送回发,并在机器人处理回发时触发请求

确保你的回拨电话发送一些你的机器人可以识别的唯一字符串,理想情况下,是普通用户永远不会发送的字符串

后退场,这是唯一的退场

然后您可以在对话框中进行检查

if( session.message.text === "thisIsMyUniquePostbackString ){
    //HeroCard was tapped, send POST request...
}
我创造了一个

请注意,我没有包含请求承诺节点模块来发出HTTP POST请求,但是您可以使用您喜欢的任何方法/库

下面是正在运行的工作示例的屏幕截图:


修复了代码块和语法。