为什么我无法使用桌面团队应用中的机器人框架打开具有 ActionTypes.OpenUrl Microsoft网站?



我使用Microsoft bot Framework在C#中创建了一个机器人,成功地在Azure中托管了它,并在Teams中注册了它,一切都很好——除了用户试图点击应该打开URL的按钮时。用户会收到一张有三个选项的卡片,点击Azure中的网络聊天功能中的一个选项,或者在手机上使用Teams应用程序时,成功启动具有所需URL的浏览器。但是,在桌面上基于浏览器的Teams版本中单击按钮会创建一个带有url的新选项卡https://teams.microsoft.com/null,单击桌面版Teams上的按钮似乎没有任何作用。卡片的代码如下:

private static async Task SendLinkCard(ITurnContext<IMessageActivity> turnContext, HeroCard card, CancellationToken cancellationToken)
{
card.Title = "Link Card";
card.Text = "Choose an option:";
card.Buttons.Add(new CardAction
{
Type = ActionTypes.OpenUrl,
Title = "Link 1",
Value = "https://google.com/​",
});
card.Buttons.Add(new CardAction
{
Type = ActionTypes.OpenUrl,
Title = "Link 2",
Value = "https://stackoverflow.com​"
});
card.Buttons.Add(new CardAction
{
Type = ActionTypes.OpenUrl,
Title = "Link 3",
Value = "https://example.com"
});
var activity = MessageFactory.Attachment(card.ToAttachment());
await turnContext.SendActivityAsync(activity, cancellationToken);
}

我在这里没有主意,这似乎应该很简单——任何帮助都将不胜感激!

正如您将在文档中看到的,下面是为英雄卡按钮分配元素的首选方法。我测试了这个实现,没有出错。

Buttons = new List<CardAction> { new CardAction(ActionTypes.OpenUrl, "Link 1", value: "https://google.com/") },
Buttons = new List<CardAction> { new CardAction(ActionTypes.OpenUrl, "Link 2", value: "https://stackoverflow.com") },
Buttons = new List<CardAction> { new CardAction(ActionTypes.OpenUrl, "Link 3", value: "https://example.com") }

现在,使用Buttons.add()应该有效,但如果有疑问,请使用最佳实践。

除此之外,这可能更像是一个团队问题,而不是BotFramework问题,因为在前一天测试时,我也看到了糟糕的链接。然而,今天的测试却没有。值得注意的是,我更新到了最近发布的4.11.0版本的SDK。

希望得到帮助!

最新更新