Botframework AdaptiveCard正在丢失“;行动”;直接线上的节点
我正在使用BotC框架和directlinejs构建我的机器人Botframework AdaptiveCard正在丢失“;行动”;直接线上的节点,botframework,direct-line-botframework,adaptive-cards,Botframework,Direct Line Botframework,Adaptive Cards,我正在使用BotC框架和directlinejs构建我的机器人 最近我注意到我的BT停止了工作,我发现问题是,直接线/BooToCor或者中间的东西在我的AdditViCARD上失去了“动作”节点。下面是我的bot(服务器)发送给客户端(botconnector和directlinejs)的消息 下面是botconnector/directlinejs向客户端传递的消息: { "type": "message", "id": "CfAgYrLQOuv9fDMPnfINDG|0000012
最近我注意到我的BT停止了工作,我发现问题是,直接线/BooToCor或者中间的东西在我的AdditViCARD上失去了“动作”节点。下面是我的bot(服务器)发送给客户端(botconnector和directlinejs)的消息
下面是botconnector/directlinejs向客户端传递的消息:{
"type": "message",
"id": "CfAgYrLQOuv9fDMPnfINDG|0000012",
"timestamp": "2018-04-19T17:57:14.9161386Z",
"localTimestamp": "2018-04-19T17:57:14.6134302+00:00",
"channelId": "directline",
"from": {
"id": "Toro",
"name": "Toro Assistant"
},
"conversation": {
"id": "CfAgYrLQOuv9fDMPnfINDG"
},
"text": "",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"text": "Não se preocupe, cadastrar um novo número é muito fácil. É só clicar no botão abaixo.\r\n\r\n"
}
],
"style": "ToroCard1"
}
}
],
"entities": [],
"replyToId": "CfAgYrLQOuv9fDMPnfINDG|0000011"
}
注意,我的消息的“动作”节点被中间的东西(BooStor或DistTrimeJS)所绑定,我不知道。 有人能帮我吗
我正在使用以下版本的BOTO框架库: Microsoft.Bot.Builder version=“3.14.1.1” Microsoft.Bot.Connector“version=“3.14.1.1”“类型”:“imBack”
不是有效的自适应操作类型
对于AdaptiveOpenUrlAction,它应该是“Action.OpenUrl”
对于AdaptiveSubmitation它应该是
“Action.Submit”
我用下面的示例代码做了一个测试来发送AdaptiveCard,在我的directjs客户端中,我可以在消息实体中找到actions
节点。因此我建议在我之前的评论中共享您的代码
在我的机器人程序中:
在directlinejs客户端中,消息实体包含操作
节点:
此外,正如Eric Dahlvang提到的,“类型”:“imBack”
不是有效的AdaptiveAction类型。如果我们明确指定类型为“imBack”
,如下所示:
card.Actions.Add(new OpenUrlAction()
{
Url = "http://foo.com",
Title = "Link1",
Type= "imBack"
});
消息实体中的操作
节点将丢失:
将Microsoft.Bot.Builder更新为version=“3.15.0”Microsoft.Bot.Connector“version=“3.15.0”后,同样的问题也会发生。您能否共享Bot应用程序和directlinejs客户端的代码?这将有助于重现这个问题。嗨@FeiHan,我很想分享我的应用程序代码,不幸的是,我公司的政策不允许我这么做。要复制错误,只需创建一个新的bot返回,并使其发布一个AdaptiveCard实例,其中AdaptiveOpenUrlAction被分配到其“Actions”属性。您会注意到AdptiveCard实例将被发送到客户端,但“Actions”属性将不存在。正如所建议的,下面是在AdptiveCard github上创建的问题:@Eric我正在尝试在Skype频道中单击adaptive card按钮发送一个简单的imBack,我就是找不到方法。不应该在数据属性工作中使用纯字符串“Action.Submit”吗?我认为Skype不支持自适应卡提交操作。
var replymes = context.MakeMessage();
AdaptiveCard card = new AdaptiveCard();
// Add text to the card.
card.Body.Add(new TextBlock()
{
Text = "This is an Adaptive Card",
Size = TextSize.Large,
Weight = TextWeight.Bolder
});
// Add buttons to the card.
card.Actions.Add(new OpenUrlAction()
{
Url = "http://foo.com",
Title = "Link1"
});
// Create the attachment.
Attachment attachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = card
};
replymes.Attachments.Add(attachment);
Console.WriteLine(card.ToString());
await context.PostAsync(replymes);
card.Actions.Add(new OpenUrlAction()
{
Url = "http://foo.com",
Title = "Link1",
Type= "imBack"
});