如何解决为什么不能在桌面团队应用程序中使用Microsoft Bot Framework打开带有ActionTypes.OpenUrl的网站?
我已经使用Microsoft Bot Framework在C#中创建了一个bot,成功将其托管在Azure中,并在Teams中进行了注册,并且一切正常-除非用户尝试单击应该打开URL的按钮,否则。系统会为用户显示一张带有三个选项的卡,然后单击Azure中Web聊天功能中的一个选项,或者在电话上使用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);
}
我在这里没有主意,这看起来应该是如此简单-任何帮助将不胜感激!
解决方法
您将在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://stackoverflow.com") },"Link 3",value: "https://example.com") }
现在,使用Buttons.add()
应该有效,但是如有疑问,请采用最佳做法。
此外,与前一天进行测试时相比,这可能还更像是Teams问题而不是BotFramework问题,我也看到了错误的链接。但是,今天没有测试。值得注意的是,我已更新到最新发布的SDK的4.11.0版本。
希望有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。