C# 没有获得团队机器人返回的价值

C# 没有获得团队机器人返回的价值,c#,botframework,chatbot,microsoft-teams,azure-bot-service,C#,Botframework,Chatbot,Microsoft Teams,Azure Bot Service,我一直试图在点击我的机器人的按钮时向用户显示一些信息 var card = new HeroCard { Title = "Welcome to Covid-19 Tracker", Text = "Type 'help' to see what bot can do?", Subtitle = "Know more about Covid-19.", Buttons = new List<CardAction> { new

我一直试图在点击我的机器人的按钮时向用户显示一些信息

var card = new HeroCard
{
    Title = "Welcome to Covid-19 Tracker",
    Text = "Type 'help' to see what bot can do?",
    Subtitle = "Know more about Covid-19.",
    Buttons = new List<CardAction>
    { 
        new CardAction(ActionTypes.PostBack, "How it spreads?", value: "spread"),
        new CardAction(ActionTypes.MessageBack, "Symptoms" , value: "Symptom"),
        new CardAction(ActionTypes.MessageBack, "Prevention Guidelines" , value: "Prevention")
    },
};

不同频道的卡片行为不同,在某些情况下,卡片动作的值会发回bot,在其他情况下,卡片动作的文本会发回bot(注意webchat和MSTeam频道之间的这种差异)。我会建议下面的一个步骤,它对我有效

  • 在卡片操作中添加文本属性
  • 或者将ActionTypes更改为ActionTypes.ImBack

  • Microsoft团队不支持将
    postBack
    作为与
    messageBack
    不同的操作类型,因此它将以相同的方式解释
    postBack
    messageBack
    。您可以在
    messageBack
    操作中看到可以使用的四个属性

    您的操作在团队中不起作用,因为您正在尝试对value属性使用字符串。如果希望继续使用字符串,则可以使用Sandeep建议的文本属性,然后您的bot将必须从传入活动的文本属性而不是其值属性中读取文本。如果要继续使用value属性,则应使用对象而不是如下所示的字符串:

    new CardAction(ActionTypes.MessageBack, "Prevention Guidelines", value: new { choice: "Prevention" })
    
    var selection = turnContext.Activity.Value is null ? null : (JToken.FromObject(turnContext.Activity.Value) as JObject)?["choice"];
    
    这将使用相同的对象填充传入活动的value属性,因此您可以像这样访问用户的选择:

    new CardAction(ActionTypes.MessageBack, "Prevention Guidelines", value: new { choice: "Prevention" })
    
    var selection = turnContext.Activity.Value is null ? null : (JToken.FromObject(turnContext.Activity.Value) as JObject)?["choice"];
    

    你能解释一下你想做什么吗?“Isback”是指imBack吗?如果是这样的话,为什么你的任何卡牌动作都没有嵌入到回牌动作中?您正在尝试使用imBack还是其他类型的操作?Kyle,早些时候我正在使用imBack,但我不希望用户看到传递给我的消息。我尝试使用PostBack和MessageBack,尽管它们在部署到团队时都不起作用。我的回答可以接受吗?抱歉,忘记将其标记为正确,它工作得很好,我不想让用户看到发送给bot的消息。可以用ImBack吗?