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 卸载应用程序并从应用程序池安装它之后 - 错误消失了。
我正在向具有机器人框架的团队发送自适应卡片。那工作正常。卡片应包含打开任务模块的操作,如 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 卸载应用程序并从应用程序池安装它之后 - 错误消失了。