没有得到 Team Bot Isback 的价值
Not getting value of Team Bot Isback
我一直在尝试通过点击我的机器人按钮向用户显示一些信息。
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")
},
};
当我从模拟器中单击这些按钮时,我能够读取 属性 的值,但是当我将其部署到 Teams 时,值以 {} 的形式出现。
我正在使用以下代码检索值。
turnContext.Activity.Value.ToString()
不同渠道的卡片行为不同,在某些情况下,卡片操作的值会回传给机器人,而在其他情况下,卡片操作的文本会被回发(注意到 webchat 和 msTeams 渠道之间的这种差异)。我会建议以下步骤之一,它对我有用
- 在卡片操作中添加文本 属性
- 或将 ActionTypes 更改为 ActionTypes.ImBack
Microsoft Teams 不支持 postBack
作为与 messageBack
不同的操作类型,因此它将以相同的方式解释 postBack
和 messageBack
。您可以看到可以在 messageBack
操作中使用的四个属性 here.
你的操作在 Teams 中不起作用,因为你正在尝试使用字符串作为值 属性。如果您想继续使用字符串,那么您可以像 Sandeep 建议的那样使用文本 属性,然后您的机器人将不得不从传入的 activity 的文本 属性 中读取文本它的价值 属性。如果你想继续使用值 属性 那么你应该使用一个对象而不是像这样的字符串:
new CardAction(ActionTypes.MessageBack, "Prevention Guidelines", value: new { choice: "Prevention" })
这将使用同一对象填充传入 activity 的值 属性,因此您可以像这样访问用户的选择:
var selection = turnContext.Activity.Value is null ? null : (JToken.FromObject(turnContext.Activity.Value) as JObject)?["choice"];
我一直在尝试通过点击我的机器人按钮向用户显示一些信息。
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")
},
};
当我从模拟器中单击这些按钮时,我能够读取 属性 的值,但是当我将其部署到 Teams 时,值以 {} 的形式出现。 我正在使用以下代码检索值。
turnContext.Activity.Value.ToString()
不同渠道的卡片行为不同,在某些情况下,卡片操作的值会回传给机器人,而在其他情况下,卡片操作的文本会被回发(注意到 webchat 和 msTeams 渠道之间的这种差异)。我会建议以下步骤之一,它对我有用
- 在卡片操作中添加文本 属性
- 或将 ActionTypes 更改为 ActionTypes.ImBack
Microsoft Teams 不支持 postBack
作为与 messageBack
不同的操作类型,因此它将以相同的方式解释 postBack
和 messageBack
。您可以看到可以在 messageBack
操作中使用的四个属性 here.
你的操作在 Teams 中不起作用,因为你正在尝试使用字符串作为值 属性。如果您想继续使用字符串,那么您可以像 Sandeep 建议的那样使用文本 属性,然后您的机器人将不得不从传入的 activity 的文本 属性 中读取文本它的价值 属性。如果你想继续使用值 属性 那么你应该使用一个对象而不是像这样的字符串:
new CardAction(ActionTypes.MessageBack, "Prevention Guidelines", value: new { choice: "Prevention" })
这将使用同一对象填充传入 activity 的值 属性,因此您可以像这样访问用户的选择:
var selection = turnContext.Activity.Value is null ? null : (JToken.FromObject(turnContext.Activity.Value) as JObject)?["choice"];