社区首页 >问答首页 >提交Azure Bot发布的团队中的自适应卡不起作用

提交Azure Bot发布的团队中的自适应卡不起作用
EN

Stack Overflow用户
提问于 2020-12-04 23:51:58
回答 3查看 687关注 0票数 0

我有一个从Azure机器人发布到团队的自适应卡,要求用户为显示的字段输入值。当用户点击Submit按钮时,什么也不会发生。然而,在WebChat或自适应卡设计器中,它可以完美地工作。当我使用逻辑应用程序将自适应卡发布到团队时,我甚至会工作。

这是自适应卡:

代码语言:javascript
代码运行次数:0
复制
{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "TextBlock",
            "size": "medium",
            "weight": "bolder",
            "text": "Start VM"
        },
        {
            "type": "TextBlock",
            "text": "Enter the details of the Virtual Machine to restart",
            "wrap": true
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "VM Name",
                            "wrap": true
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "Input.Text",
                            "placeholder": "e.g. servername",
                            "id": "vmName"
                        }
                    ]
                }
            ]
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "VM Resource Group",
                            "wrap": true
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "Input.Text",
                            "placeholder": "e.g. resourcegroup",
                            "id": "vmResourceGroup"
                        }
                    ]
                }
            ]
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "Username",
                            "wrap": true
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "Input.Text",
                            "placeholder": "e.g. joe.bloggs@contoso.com",
                            "id": "username"
                        }
                    ]
                }
            ]
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "ServiceNow SysID for Change Record",
                            "wrap": true
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "Input.Text",
                            "placeholder": "e.g. 11cef313db4ce0d012d9147a3a961909",
                            "id": "sysId"
                        }
                    ]
                }
            ]
        }
    ],
    "actions": [  
        {  
            "type": "Action.Submit",  
            "title": "Submit"
        }  
    ]
}

构建自适应卡的Azure Bot中的C#代码如下所示:

代码语言:javascript
代码运行次数:0
复制
private Attachment CreateAdaptiveCardAttachment()
{
    var cardResourcePath = "EchoBot.Cards.startVMCard.json";

    using (var stream = GetType().Assembly.GetManifestResourceStream(cardResourcePath))
    {
        using (var reader = new StreamReader(stream))
        {
            var adaptiveCard = reader.ReadToEnd();
            return new Attachment()
            {
                ContentType = "application/vnd.microsoft.card.adaptive",
                Content = JsonConvert.DeserializeObject(adaptiveCard),
            };
        }
    }
}

发送自适应卡的Azure机器人的代码如下:

代码语言:javascript
代码运行次数:0
复制
var startVMCard = CreateAdaptiveCardAttachment();
var response = MessageFactory.Attachment(startVMCard);
await turnContext.SendActivityAsync(response, cancellationToken);

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-01-02 08:08:37

我找到问题了。

看起来团队使用的是Skype Framework3.0,没有postBack方法。自适应卡提交在ChannelData中不包含postBack。使用框架仿真器的自适应卡提交在ChannelData中包含postBack

为了解决这个问题,我添加了以下代码:

代码语言:javascript
代码运行次数:0
复制
var channelData = JObject.Parse(turnContext.Activity.ChannelData.ToString());
JObject activity = JObject.Parse(turnContext.Activity.Value.ToString());

if (channelData.ContainsKey("postBack") || activity.HasValues == true)
{
    ...
}
票数 0
EN

Stack Overflow用户

发布于 2020-12-07 11:23:22

首先,感谢您联系我们。

我已经检查并测试了您实现的适配卡json和方法。

能够获取"adaptivecards.io/designer“中的值,

此外,我也在微软团队中尝试过,能够获得代码"turnContext“中的值。

因此,在Submit按钮操作中,您必须实现在Bot中显示值的代码。

请通过document,您将获得有关卡的完整知识以及如何实现卡。

票数 0
EN

Stack Overflow用户

发布于 2020-12-23 07:02:14

好的--试着调试这个神秘的东西。在Visual Studio中,我可以在Azure中查看Bot中的流日志。

当通过远程连接到Bot的Bot框架模拟器测试Bot时,它可以完美地工作。单击日志中的submit按钮后,我看到以下内容:

代码语言:javascript
代码运行次数:0
复制
Application:2020-12-23 06:41:39.456 +00:00 [Information] Microsoft.AspNetCore.Hosting.Diagnostics: Request starting HTTP/1.1 POST https://startvmbot.azurewebsites.net/api/messages application/json 678
Application:2020-12-23 06:41:39.456 +00:00 [Information] Microsoft.AspNetCore.Routing.EndpointMiddleware: Executing endpoint 'StartVMBot.Controllers.BotController.PostAsync (startvmbot)'
Application:2020-12-23 06:41:39.456 +00:00 [Information] Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker: Route matched with {action = "Post", controller = "Bot"}. Executing controller action with signature System.Threading.Tasks.Task PostAsync() on controller StartVMBot.Controllers.BotController (startvmbot).
Application:2020-12-23 06:41:39.456 +00:00 [Information] Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker: Executing action method StartVMBot.Controllers.BotController.PostAsync (startvmbot) - Validation state: Valid
Application:2020-12-23 06:41:39.460 +00:00 [Information] Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpAdapter: Received an incoming activity.  ActivityId: e920c600-44e9-11eb-aa2c-f5a359761b0e
Application:2020-12-23 06:41:39.657 +00:00 [Information] Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpAdapter: Sending activity.  ReplyToId: e920c600-44e9-11eb-aa2c-f5a359761b0e
Application:2020-12-23 06:41:39.658 +00:00 [Information] Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpAdapter: GetTokenAsync: Acquired token using ADAL in 0.
Application:2020-12-23 06:41:40.128 +00:00 [Information] Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker: Executed action method StartVMBot.Controllers.BotController.PostAsync (startvmbot), returned result Microsoft.AspNetCore.Mvc.EmptyResult in 671.7897ms.
Application:2020-12-23 06:41:40.128 +00:00 [Information] Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker: Executed action StartVMBot.Controllers.BotController.PostAsync (startvmbot) in 672.1344ms
Application:2020-12-23 06:41:40.128 +00:00 [Information] Microsoft.AspNetCore.Routing.EndpointMiddleware: Executed endpoint 'StartVMBot.Controllers.BotController.PostAsync (startvmbot)'
Application:2020-12-23 06:41:40.129 +00:00 [Information] Microsoft.AspNetCore.Hosting.Diagnostics: Request finished in 673.416ms 200

这是Bot Framework Emulator中的结果

当通过团队测试机器人时,它不工作。单击日志中的submit按钮后,我看到以下内容:

代码语言:javascript
代码运行次数:0
复制
Application:2020-12-23 06:39:56.705 +00:00 [Information] Microsoft.AspNetCore.Hosting.Diagnostics: Request starting HTTP/1.1 POST https://startvmbot.azurewebsites.net/api/messages application/json; charset=utf-8 1136
Application:2020-12-23 06:39:56.705 +00:00 [Information] Microsoft.AspNetCore.Routing.EndpointMiddleware: Executing endpoint 'StartVMBot.Controllers.BotController.PostAsync (startvmbot)'
Application:2020-12-23 06:39:56.705 +00:00 [Information] Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker: Route matched with {action = "Post", controller = "Bot"}. Executing controller action with signature System.Threading.Tasks.Task PostAsync() on controller StartVMBot.Controllers.BotController (startvmbot).
Application:2020-12-23 06:39:56.705 +00:00 [Information] Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker: Executing action method StartVMBot.Controllers.BotController.PostAsync (startvmbot) - Validation state: Valid
Application:2020-12-23 06:39:56.707 +00:00 [Information] Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpAdapter: Received an incoming activity.  ActivityId: f:6238602817490478374
Application:2020-12-23 06:39:56.708 +00:00 [Information] Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker: Executed action method StartVMBot.Controllers.BotController.PostAsync (startvmbot), returned result Microsoft.AspNetCore.Mvc.EmptyResult in 2.2726ms.
Application:2020-12-23 06:39:56.708 +00:00 [Information] Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker: Executed action StartVMBot.Controllers.BotController.PostAsync (startvmbot) in 2.5461ms
Application:2020-12-23 06:39:56.708 +00:00 [Information] Microsoft.AspNetCore.Routing.EndpointMiddleware: Executed endpoint 'StartVMBot.Controllers.BotController.PostAsync (startvmbot)'
Application:2020-12-23 06:39:56.708 +00:00 [Information] Microsoft.AspNetCore.Hosting.Diagnostics: Request finished in 3.6941ms 200 

这是团队中的结果:

我会继续寻找,但如果任何人有任何想法,我将不胜感激!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65152305

复制
相关文章
如何在 Python 中的绘图图形上手动添加图例颜色和图例字体大小?
Plotly 的 update_layout() 方法以及legend_font_color和legend_font_size参数可用于手动添加图例颜色和字体大小。下面提供了语法的插图 -
很酷的站长
2023/08/11
8390
如何在 Python 中的绘图图形上手动添加图例颜色和图例字体大小?
为你的图片添加图例
图例可以帮助我们更好的理解图中的信息,在matplotlib中,通过legend函数来添加图例,有以下两种用法
生信修炼手册
2020/09/14
1.2K0
如何向图形添加曲形文本
R语言数据分析指南
2023/08/18
2190
如何向图形添加曲形文本
如何向数组里添加元素
一般数组是不能添加元素的,因为数组在初始化时就已定好长度了,不能改变长度,我们如何做到向其中添加元素。
算法与编程之美
2023/01/03
3.5K0
swiper组件添加左右箭头
前言:小程序官方swiper组件并未提供带左右箭头功能,但有些时候还是想把左右箭头添加上,今天连胜老师就给大家分享一下自己的实现方式。 思路很简单:在swiper组件内部添加两个image组件,绑定点击事件,动态改变swiper中的current值。不废话,主要看代码: WXML: <swiper indicator-dots="{{swiper.indicatorDots}}" autoplay="{{swiper.autoplay}}" interval="{{swiper.interval}}"
连胜
2018/03/07
2.9K0
swiper组件添加左右箭头
qcustomplot添加图例_qchart显示点数据
LXTracer::LXTracer(QCustomPlot *_plot, TracerType _type, QObject *parent)
全栈程序员站长
2022/11/08
2.2K0
java如何向数组中添加元素[数组的添加]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java如何向数组中添加元素[数组的添加],希望能够帮助大家进步!!!
Java架构师必看
2022/04/06
7.7K0
java如何向数组里添加元素
1、一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。 但有个可以改变大小的数组为ArrayList,即可以定义一个ArrayList数组,然后用add(element)方法往里添加元素即可,还可add(index,element)往指定下标处添加元素;例子如下:
全栈程序员站长
2022/06/27
20.6K0
Spring 中的 @Import 注解及向容器中添加 Bean 的几种方式
这次介绍一下 Spring 中的一个重要的注解 @Import 以及向容器中添加 Bean 的几种方式 ,该注解在 SpringBoot 自动转配中起到重要的作用。
wsuo
2020/07/30
1.7K0
ggasym轻松给热图添加多个图例
R语言数据分析指南
2023/08/18
2160
ggasym轻松给热图添加多个图例
如何向已有的项目中添加C/C++代码?
  我们需要在src/main下面建立一个cpp目录,然后在其中写一个CMakeLists.txt文件和一个cpp文件,直接给出代码:
故乡的樱花开了
2023/10/22
2930
qpainter画箭头改变方向_visio如何画箭头
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
2.1K0
qpainter画箭头改变方向_visio如何画箭头
Python 中如何向列表或数组添加元素
然而,与其它编程语言不同,数组在 Python 中不是一个内置的数据结构。Python 使用列表取代传统的数组。
Python学习者
2023/09/11
3580
向邮件添加附件
可以将附件添加到电子邮件或消息部分(具体地说,是添加到%Net.MailMessagePart或%Net.MailMessage的实例)。要执行此操作,请使用以下方法:
用户7741497
2022/06/09
2.1K0
2018-07-19 如何重构“箭头型”代码如何重构“箭头型”代码
原文地址:https://coolshell.cn/articles/17757.html
Albert陈凯
2018/07/24
9860
2018-07-19 如何重构“箭头型”代码如何重构“箭头型”代码
如何使用 Bootstrap class 向按钮添加下拉菜单
如何使用 Bootstrap class 向按钮添加下拉菜单。如需向按钮添加下拉菜单,只需要简单地在一个 .btn-group 容器中放置按钮和下拉菜单即可。您也可以使用 <span class="caret"></span> 来指示按钮作为下拉菜单。
好派笔记
2021/09/18
5.6K0
spring:如何用代码动态向容器中添加或移除Bean ?
先来看一张类图: 有一个业务接口IFoo,提供了二个实现类:FooA及FooB,默认情况下,FooA使用@Component由Spring自动装配,如果出于某种原因,在运行时需要将IFoo的实现,则F
菩提树下的杨过
2018/01/18
5.1K0
spring:如何用代码动态向容器中添加或移除Bean ?
质量看板开发实践(五):给echarts图例添加数值
官方文档:https://echarts.apache.org/zh/option.html#legend.formatter
冰霜
2022/05/01
3K0
matlab画图,添加图名,坐标轴名,曲线名称(图例)[通俗易懂]
matlab画完曲线图后,需要添加:图像名称(Title),坐标轴名(Label),图例(Legend)
全栈程序员站长
2022/09/28
5.6K0
matlab画图,添加图名,坐标轴名,曲线名称(图例)[通俗易懂]
点击加载更多

相似问题

如何向ggplot添加图例

11

如何向hline添加图例?

12

如何向散点图添加图例

21

向散点图添加图例

20

向绘图添加图例

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