为什么我无法在桌面 Teams 应用程序中使用 Microsoft Bot Framework 打开 ActionTypes.OpenUrl 的网站?
Why can't I open a website with ActionTypes.OpenUrl using Microsoft Bot Framework in the desktop Teams app?
我使用 Microsoft Bot Framework 在 C# 中创建了一个机器人,在 Azure 中成功托管了它,在 Teams 中注册了它,并且一切正常 - 除非用户尝试单击应该打开的按钮一个URL。用户会看到一张卡片,上面有三个选项,单击 Azure 中的网络聊天功能中的一个选项,或者在 phone 上使用 Teams 应用程序时,成功启动具有所需 [=18] 的浏览器=].但是,在桌面版基于浏览器的 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://whosebug.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);
}
我在这里没有想法,这看起来应该如此简单 - 任何帮助将不胜感激!
正如您将在 docs 中看到的,以下是将元素分配给英雄卡片按钮的首选方法。我测试了这个实现没有错误。
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://whosebug.com") },
Buttons = new List<CardAction> { new CardAction(ActionTypes.OpenUrl, "Link 3", value: "https://example.com") }
现在,使用 Buttons.add()
应该 有效,但如有疑问,请采用最佳实践。
除此之外,这可能更像是 Teams 问题而不是 BotFramework 问题,因为在前一天测试时,我也看到了不好的 link。然而,今天的测试没有。值得注意的是我更新到了最近发布的4.11.0版本的SDK。
希望得到帮助!
我使用 Microsoft Bot Framework 在 C# 中创建了一个机器人,在 Azure 中成功托管了它,在 Teams 中注册了它,并且一切正常 - 除非用户尝试单击应该打开的按钮一个URL。用户会看到一张卡片,上面有三个选项,单击 Azure 中的网络聊天功能中的一个选项,或者在 phone 上使用 Teams 应用程序时,成功启动具有所需 [=18] 的浏览器=].但是,在桌面版基于浏览器的 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://whosebug.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);
}
我在这里没有想法,这看起来应该如此简单 - 任何帮助将不胜感激!
正如您将在 docs 中看到的,以下是将元素分配给英雄卡片按钮的首选方法。我测试了这个实现没有错误。
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://whosebug.com") },
Buttons = new List<CardAction> { new CardAction(ActionTypes.OpenUrl, "Link 3", value: "https://example.com") }
现在,使用 Buttons.add()
应该 有效,但如有疑问,请采用最佳实践。
除此之外,这可能更像是 Teams 问题而不是 BotFramework 问题,因为在前一天测试时,我也看到了不好的 link。然而,今天的测试没有。值得注意的是我更新到了最近发布的4.11.0版本的SDK。
希望得到帮助!