首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有得到团队机器人的价值

没有得到团队机器人的价值
EN

Stack Overflow用户
提问于 2020-04-03 11:52:39
回答 2查看 309关注 0票数 0

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

代码语言:javascript
复制
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")
    },
};

当我从模拟器单击这些按钮时,我能够将值读取为属性,但当我将其部署到团队时,值将以{}的形式出现。我正在使用下面的代码检索值。

代码语言:javascript
复制
turnContext.Activity.Value.ToString()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-06 19:36:01

微软团队不支持postBack作为一种不同于messageBack的操作类型,因此它将以同样的方式来解释postBackmessageBack。您可以看到可以在messageBack操作这里中使用的四个属性。

您的操作没有在团队中工作,因为您试图为value属性使用字符串。如果您想继续使用字符串,那么您可以像San深处建议的那样使用text属性,然后您的bot必须从传入活动的text属性中读取文本,而不是从它的value属性中读取文本。如果您想继续使用value属性,那么应该使用一个对象而不是如下所示的字符串:

代码语言:javascript
复制
new CardAction(ActionTypes.MessageBack, "Prevention Guidelines", value: new { choice: "Prevention" })

这将使用相同的对象填充传入活动的value属性,这样您就可以像这样访问用户的选择:

代码语言:javascript
复制
var selection = turnContext.Activity.Value is null ? null : (JToken.FromObject(turnContext.Activity.Value) as JObject)?["choice"];
票数 0
EN

Stack Overflow用户

发布于 2020-04-04 14:25:06

不同渠道的卡片行为不同,在某些情况下,卡片动作的值被发回bot,而在另一些情况下,卡片动作的文本(注意到webchat和msTeams通道之间的这种差异)。我建议下面的步骤之一,它对我有效

  1. 在卡片操作中添加文本属性
  2. 或将ActionTypes更改为ActionTypes.ImBack
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61011300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档