Teams:如何在桌面应用程序中从 Adaptive Card 打开任务模块

Teams: How to open Task Module from Adaptive Card in desktop app

我正在向具有机器人框架的团队发送自适应卡片。那工作正常。卡片应包含打开任务模块的操作,如 here.

所述

我的卡片代码如下所示:

AdaptiveCard card = new AdaptiveCard(new AdaptiveSchemaVersion(1, 3))
        {
            Body = new List<AdaptiveElement>() {
                new AdaptiveTextBlock() {
                    Wrap = true,
                    Text = "test",
                    IsSubtle = false,
                    Size = AdaptiveTextSize.Large,
                    Weight = AdaptiveTextWeight.Bolder
                }
            },
            Actions = new List<AdaptiveAction>() {
                new AdaptiveSubmitAction()
                {
                    Title = "In Teams",
                    DataJson = $"{{\"msteams\":{{\"type\":\"task/fetch\"}},\"Url\":\"{url}\",\"Title\": \"{title}\"}}"
                }
            }
        };

卡片在团队中显示,但按钮在桌面客户端中不起作用。它只是以红色显示此消息:

Something went wrong. Please try again.

在网络版中,任务模块刚刚打开。我是否必须为团队的桌面版本更改某些内容?尝试像 this example 中那样更改我的代码,但这也不起作用。

更新: 所以我尝试了这个例子,它确实奏效了一次。之后我收到了相同的错误消息,并且没有显示任何任务模块。但是当我在新 window 中弹出应用程序时,一切正常。所以在我看来它像是团队中的一个错误。

这可能与平台读取您的 json 的方式有关 - 例如,“”字符可能无法在桌面上正确处理。要解决此问题,请将 json 转换留给平台,对于您在 C# 中的示例,改为创建强类型。您 link 的示例正是这样做的 - 请参阅此行:

new TaskModuleAction(cardType.ButtonTitle, new CardTaskFetchValue<string>() { Data = cardType.Id }

里面https://github.com/microsoft/BotBuilder-Samples/blob/448c5535cb6d6be8d7a61f78ef1902b55c1f0edb/samples/csharp_dotnetcore/54.teams-task-module/Bots/TeamsTaskModuleBot.cs, which is referencing this class: https://github.com/microsoft/BotBuilder-Samples/blob/901bc140f5aa300fbfa852e64afd7c65fceebff9/samples/csharp_dotnetcore/54.teams-task-module/Models/AdaptiveCardTaskFetchValue.cs

我对消息“出了点问题。再试一次。”,当从自适应卡调用任务模块时。我通过清单的本地上传安装了机器人,但后来我发现它也被添加到我们组织的应用程序列表中,显然有某种它们之间的冲突。在我从我的桌面 Teams 卸载应用程序并从应用程序池安装它之后 - 错误消失了。