Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >带有MS团队的动态自适应卡

带有MS团队的动态自适应卡
EN

Stack Overflow用户
提问于 2019-10-21 08:14:14
回答 1查看 465关注 0票数 0

我们正在为一个基于机器人的MS团队动态绘制自适应卡。我们面临的问题是,卡在WebChat或模拟器上呈现得很好,但是当从MS团队调用时会捕捉到异常。

我们已经为适应性卡片和设计者使用了文档,但似乎没有一个有效。我们现在很好奇,是否呈现MS团队需要一些特殊的修复来工作。根据在线提供的文档,我们尝试使用"msteams“作为id。

自适应卡码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cardRequest.Body.Add(new AdaptiveContainer()
        {
            Items = new List<AdaptiveElement>
            {
            new AdaptiveTextBlock()
            {
                 Text = CatalogSubject,
                 Size = AdaptiveTextSize.Default,
                 Weight = AdaptiveTextWeight.Bolder,
            },
            new AdaptiveColumnSet()
            {
                Columns = new List<AdaptiveColumn>()
                {
                    new AdaptiveColumn()
                    {
                        Items = new List<AdaptiveElement>()
                        {
                            new AdaptiveImage()
                            {
                               Style = AdaptiveImageStyle.Default,
                                 Url =new Uri("https://pleudepooopsdemo02.service-now.com/c4b933e9471211002ee987e8dee49064.iix"),

                                Separator=true,
                                Size =  AdaptiveImageSize.Large,
                            }
                        },
                       Separator =true,
                        Width="auto",
                    },
                    new AdaptiveColumn()
                    {
                        Items = new List<AdaptiveElement>()
                        {
                            new AdaptiveTextBlock()
                            {
                                Text=  subCatdescription,
                                Weight= AdaptiveTextWeight.Default,
                                Separator=true,
                                Size = AdaptiveTextSize.Small,
                                Wrap =true,

                            }

                        },
                        Separator =true,
                        Width="stretch",
                    },

                }

            },
            new AdaptiveFactSet()
            {
               Facts = new List<AdaptiveFact>()
               {
                new AdaptiveFact{Title =  "Price",Value =catalogType.scSubCategoryPrice},
                new AdaptiveFact{Title =  "Quantity",Value ="1"},
                new AdaptiveFact{Title = "Email",Value= serviceNowHelper.ParseEmailId(sc.Context.Activity.From.Id, sc.Context.Activity.Conversation.Id, sc.Context.Activity.ServiceUrl, sc.Context.Activity.ChannelId) },
                new AdaptiveFact{Title = "sysid",Value=catalogType1.scSubcategorySysid},
                new AdaptiveFact{Title="PassingValue",Value=catalogType.scSubCategoryName.Substring(catalogType.scSubCategoryName.IndexOf('.') + 1)}

               }
            },

            }


        });
        var button = new CardAction()
        {
            Type = "Action.Submit",
            Title="Create Request",
            DisplayText="I clicked this button",
            Value="{\"Create\": \"" + catalogType.scSubCategoryName.Substring(catalogType.scSubCategoryName.IndexOf('.') + 1) + "\"}"


        };

        AdaptiveAction actions =
                new AdaptiveSubmitAction()
                {
                    Title = "Create Request",
                    Type = "Action.Submit",                      
                    Data = "{\"Create\": \"" + catalogType.scSubCategoryName.Substring(catalogType.scSubCategoryName.IndexOf('.') + 1) + "\"}",



            Id = "create",

                };

        AdaptiveAction actions1 =
               new AdaptiveSubmitAction()
               {
                   Title = "Cancel Request",
                   Type = "Action.Submit",                      
                   Data = "Cancel",
                   Id = "cancel"

               };



        cardRequest.Actions.Add(actions);
        cardRequest.Actions.Add(actions1);

        Object displayCardJson = JsonConvert.DeserializeObject(cardRequest.ToJson());

        List<Attachment> attachmentsList = new List<Attachment>();


        Attachment att = new Attachment()
        {
            Content = displayCardJson,
            ContentType = AdaptiveCard.ContentType

        };

        reply.Attachments.Add(att);                  
        return reply;

COSMOSDB中的错误消息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        {
"User": {
    "id": "29:1j50LiW4dYQyZQ6T44RruVxuaBfatlBHX0YuD7Hly8pNNAiQuWgcoD5jRGHLphLgokeJ6N6b7O7GODLy2QU3G_A",
    "name": "Mary OfEngland",
    "aadObjectId": "98a69ea5-8d65-4264-9d5c-2f12171258a2",
    "role": "user"
},
"Exception": "Cannot perform runtime binding on a null reference",
"StackTrace": "   at CallSite.Target(Closure , CallSite , Object )\r\n   at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)\r\n   at FepdePleu.PA.Chatbot.PoC.Dialogs.TicketOpen.GenericRequest.GenericRequestDialog.<>c__DisplayClass40_0.<CreateRequestTicket>b__0(scCatalogCategoryListDetails a) in C:\\Mary\\BotProject\\FepdePleuBOT\\FepdePleu.PA.Chatbot.PoC\\FepdePleu.PA.Chatbot.PoC\\Dialogs\\TicketOpen\\GenericRequest\\GenericRequestDialog.cs:line 355\r\n   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()\r\n   at System.Linq.Enumerable.DistinctIterator`1.MoveNext()\r\n   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)\r\n   at FepdePleu.PA.Chatbot.PoC.Dialogs.TicketOpen.GenericRequest.GenericRequestDialog.CreateRequestTicket(WaterfallStepContext sc, CancellationToken cancellationToken) in C:\\Mary\\BotProject\\FepdePleuBOT\\FepdePleu.PA.Chatbot.PoC\\FepdePleu.PA.Chatbot.PoC\\Dialogs\\TicketOpen\\GenericRequest\\GenericRequestDialog.cs:line 355\r\n   at Microsoft.Bot.Builder.Dialogs.WaterfallDialog.OnStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.Dialogs.WaterfallDialog.RunStepAsync(DialogContext dc, Int32 index, DialogReason reason, Object result, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.Dialogs.WaterfallDialog.ResumeDialogAsync(DialogContext dc, DialogReason reason, Object result, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.Dialogs.DialogContext.EndDialogAsync(Object result, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.Dialogs.Prompt`1.ContinueDialogAsync(DialogContext dc, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.Dialogs.DialogContext.ContinueDialogAsync(CancellationToken cancellationToken)\r\n   at FepdePleu.PA.Chatbot.PoC.InterruptableDialog.OnContinueDialogAsync(DialogContext dc, CancellationToken cancellationToken) in C:\\Mary\\BotProject\\FepdePleuBOT\\FepdePleu.PA.Chatbot.PoC\\FepdePleu.PA.Chatbot.PoC\\Dialogs\\Shared\\InterruptableDialog.cs:line 39\r\n   at Microsoft.Bot.Builder.Dialogs.ComponentDialog.ContinueDialogAsync(DialogContext outerDc, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.Dialogs.DialogContext.ContinueDialogAsync(CancellationToken cancellationToken)\r\n   at FepdePleu.PA.Chatbot.PoC.RouterDialog.OnContinueDialogAsync(DialogContext innerDc, CancellationToken cancellationToken) in C:\\Mary\\BotProject\\FepdePleuBOT\\FepdePleu.PA.Chatbot.PoC\\FepdePleu.PA.Chatbot.PoC\\Dialogs\\Shared\\RouterDialog.cs:line 29\r\n   at Microsoft.Bot.Builder.Dialogs.ComponentDialog.ContinueDialogAsync(DialogContext outerDc, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.Dialogs.DialogContext.ContinueDialogAsync(CancellationToken cancellationToken)\r\n   at FepdePleu.PA.Chatbot.PoC.ChatbotPoC.OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken) in C:\\Mary\\BotProject\\FepdePleuBOT\\FepdePleu.PA.Chatbot.PoC\\FepdePleu.PA.Chatbot.PoC\\ChatbotPoC.cs:line 95\r\n   at Microsoft.Bot.Builder.AutoSaveStateMiddleware.OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.TranscriptLoggerMiddleware.OnTurnAsync(ITurnContext turnContext, NextDelegate nextTurn, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.MiddlewareSet.ReceiveActivityWithStatusAsync(ITurnContext turnContext, BotCallbackHandler callback, CancellationToken cancellationToken)\r\n   at Microsoft.Bot.Builder.BotAdapter.RunPipelineAsync(ITurnContext turnContext, BotCallbackHandler callback, CancellationToken cancellationToken)",
"date": "2019-10-21T11:03:56.4735109+00:00",
"id": "360c5e3a-98ee-47a6-96c7-c2d135cc6dcd",
"_rid": "V8ZNAMmmWUa-BgAAAAAAAA==",
"_self": "dbs/V8ZNAA==/colls/V8ZNAMmmWUY=/docs/V8ZNAMmmWUa-BgAAAAAAAA==/",
"_etag": "\"05006368-0000-0300-0000-5dad909c0000\"",
"_attachments": "attachments/",
"_ts": 1571655836

}

EN

回答 1

Stack Overflow用户

发布于 2019-10-22 09:38:52

这为我们解决了这个问题。在吉特布问题下发现的适应性卡。

--这与AdaptiveCards包中的一个bug有关:microsoft/AdaptiveCards#2148尝试构建附件如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Attachment attachment = new Attachment() {  ContentType = AdaptiveCard.ContentType,     Content = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(card)), };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58490257

复制
相关文章
如何在SQL Server中将表从一个数据库复制到另一个数据库
在某些情况下,作为DBA,您需要将模式和特定表的内容从数据库复制到同一实例中或在不同的SQL实例中,例如从生产数据库中复制特定表到开发人员以进行测试或排除故障。 SQL Server提供了许多方法,可以用来执行表的数据和模式复制过程。为了研究这些方法中的每一个,我们将考虑下面的场景: 托管SQL服务器:localhost。这两个数据库都驻留在同一个SQL Server 2014实例中。 源数据库:AdventureWorks2012。 目标数据库:SQLShackDemo。 将从源数据库复制到目标数据库的表
程序你好
2018/07/20
8.3K0
flutter - 如何在Dart/Flutter中将某些元素从一个Map复制到新Map中?
由于keys返回 map 键的Iterable<String>,因此您可以使用where方法检查所需的键,然后可以基于旧 map 值填充值。
徐建国
2021/08/30
1.4K0
php获取所有节点的父节点和子节点
根据子节点获取所有的父节点以及父节点的父节点.. <?php $src = '[{"id":"1","name":"媒体(白名单)","pid":"0"},{"id":"2","name":"党媒公
黄啊码
2020/05/29
6.2K0
java 把文件从一个目录复制到另一个目录
方法一:简单粗暴,直接使用copy(),如果目标存在,先使用delete()删除,再复制;
崔笑颜
2020/06/08
1.9K0
Linux将一个文件夹或文件夹下的所有内容复制到另一个文件夹
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/124758.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/21
5.4K0
Linux将一个文件夹或文件夹下的所有内容复制到另一个文件夹
[译]将 Kubernetes 扩展至7500个节点
我们已经将 Kubernetes 集群扩展到了7500个节点,该集群主要是为 GPT-3、CLIP 和 DALL·E 等大型模型提供可扩展的基础设施,同时也为神经语言模型的缩放定律等快速的小规模迭代研究提供基础支持。将单个 Kubernetes 集群扩展到这种规模是很少见的,因而需要特别小心,但好处是一个简单的基础设施,使我们的机器学习研究团队能够更快地迁移和扩展,而不需要更改他们的代码。
我是阳明
2021/03/01
7270
SQL根据指定节点ID获取所有父级节点和子级节点
根据指定节点ID获取所有父节点 with temp as( select * from dbo.Category where Id=493 --表的主键ID union all select t.* from temp,dbo.Category t where temp.Pid=t.Id --父级ID=子级ID )select * from temp order by Level; [查询结果] 根据指定节点ID获取所有子节点 with temp as( select * from dbo.Category
段邵华
2019/08/01
6K0
java根据子节点获取它对应的所有父节点_java根据父节点查找子节点
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/01
6.9K0
树形结构已知子节点获取子节点所有父节点——任意目录/树
JS 树形结构 根据子节点找到所有上级,比如element-tree,已知路由上的子结点id,如何回填的 展开目录树?
周陆军博客
2023/05/07
3.3K0
将一个CentOS环境复制到另一个CentOS
「这是我参与2022首次更文挑战的第23天,活动详情查看:2022首次更文挑战」。
Java廖志伟
2022/03/07
5700
将一个CentOS环境复制到另一个CentOS
将一个CentOS环境复制到另一个CentOS
将一个CentOS环境复制到另一个CentOs,实现环境迁移或备份的功能 将CentOS2复制一份新的CentOS3出来,步骤如下: 创建新的CentOS3 这里的名称改吃CentOS3,后面的文件改名就是对应的这个名称 ISO映像文件路径修改,每个CentOS单独用一个ISO映像文件 直接启动 修改网络ip cd /etc/sysconfig/network-scripts/ vi ifc
Java廖志伟
2022/09/29
1.6K0
将一个CentOS环境复制到另一个CentOS
【Longhorn】能否部署到专用的节点,业务使用其他节点
Longhorn 作为分布式存储,当然是有点复杂的…作为集群的使用者,当然会有一种想法就是能否在集群中只用几个节点部署 Longhorn,万一出问题了,不影响用户在节点上的其他工作负载,就是单纯想隔离了。
runzhliu
2022/04/13
6960
【Longhorn】能否部署到专用的节点,业务使用其他节点
属性 元素的内容 创建,插入和删除节点 虚拟节点
表示HTML文档元素的HTMLElement对象定义了读/写属性。映射了元素的HTML属性。HTMLElement定义了通用的HTTP属性。以及事件处理程序的属性。特定的Element子类型为其元素定义了特定的属性。
mySoul
2018/08/07
2.4K0
如何在集群里服役新节点、退役旧节点(DataNode)
①准备机器,配置好JDK、hadoop的环境变量,在hdfs-site.xml和yarn-site.xml文件中分别配置NameNode和ResourceManager所在主机名 ②待服役成功后,启动datanode和nodemanager进程即可 ③服役了新的DN节点后,可以执行再平衡的命令,这个命令可以将集群中块进行重新平衡分配,实现负载均衡: ./start-balancer.sh
孙晨c
2020/07/14
8310
如何在100个节点集群上模拟10000个节点的集群?让DynoYARN来模拟吧
DynoYARN 是一种用于按需启动 YARN 集群并运行模拟 YARN 工作负载以进行规模测试的工具。由Linkedin开源。它可以在 100 个节点的 Hadoop 集群上模拟 10,000 个节点的 YARN 集群性能。
从大数据到人工智能
2022/04/08
8060
​[AAAI | 论文简读] GNN中非属性节点分类的优先标记
Preferential Labeling for Unattributed Node Classification in GNNs
智能生信
2022/12/29
4860
​[AAAI | 论文简读] GNN中非属性节点分类的优先标记
xpath库详解xpath入门获取所有节点 //子节点 /父节点 ..属性匹配 @文本获取按序选择节点轴选择
python爬虫抓取网页内容,需要对html或xml结构的数据进行解析,如果用正则,单是写正则表达式就让很多望而生畏了。
章鱼喵
2018/09/26
25.3K0
xpath库详解xpath入门获取所有节点 //子节点 /父节点 ..属性匹配 @文本获取按序选择节点轴选择
jquery 元素节点操作 - 创建节点、插入节点、删除节点
前面的篇章对于jquery的元素操作大部分是使用html()的方式来操作,这种直接使用字符串创建的方式也是性能最高的。
Devops海洋的渔夫
2019/05/31
9K0
点击加载更多

相似问题

XSLT在xml中将值从一个节点复制到另一个节点

10

XSLT:将属性从一个节点复制到另一个节点

22

XSLT -复制所有其他节点,添加1个新节点

42

将所有xml属性从一个节点复制到另一个节点

39

Drupal -自动将字段内容从一个节点复制到另一个节点

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文