我已经使用Microsoft Bot Framework在C#中创建了一个漫游器,已将其成功托管在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") },
Buttons = new List<CardAction> { new CardAction(ActionTypes.OpenUrl, "Link 3", value: "https://example.com") }
现在,使用Buttons.add()
应该可以,但是如果有疑问,请采用最佳做法。
除此之外,这可能更像是Teams问题而不是BotFramework问题,因为前一天进行测试时,我还看到了错误的链接。但是,今天没有测试。值得注意的是,我更新到了最近发布的SDK的4.11.0版本。
希望有帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句