Botframework 为什么可以';我是否在桌面团队应用程序中使用Microsoft Bot Framework打开ActionTypes.OpenUrl网站?
我已经使用Microsoft bot框架在C#中创建了一个bot,在Azure中成功托管了它,在团队中注册了它,一切都很好——除了当用户尝试单击一个按钮打开URL时。用户将看到一张卡,卡上有三个选项,单击Azure中Web聊天功能中的其中一个选项,或者在手机上使用Teams应用程序时,成功启动具有所需URL的浏览器。但是,在桌面上单击基于浏览器版本的团队中的按钮会创建一个带有url的新选项卡,而在桌面版本的团队中单击按钮似乎没有任何作用。卡的代码如下所示:Botframework 为什么可以';我是否在桌面团队应用程序中使用Microsoft Bot Framework打开ActionTypes.OpenUrl网站?,botframework,bots,microsoft-teams,azure-bot-service,Botframework,Bots,Microsoft Teams,Azure Bot Service,我已经使用Microsoft bot框架在C#中创建了一个bot,在Azure中成功托管了它,在团队中注册了它,一切都很好——除了当用户尝试单击一个按钮打开URL时。用户将看到一张卡,卡上有三个选项,单击Azure中Web聊天功能中的其中一个选项,或者在手机上使用Teams应用程序时,成功启动具有所需URL的浏览器。但是,在桌面上单击基于浏览器版本的团队中的按钮会创建一个带有url的新选项卡,而在桌面版本的团队中单击按钮似乎没有任何作用。卡的代码如下所示: private static asyn
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);
}
专用静态异步任务SendLinkCard(iTurContext turnContext、HeroCard卡、CancellationToken CancellationToken)
{
card.Title=“链接卡”;
card.Text=“选择一个选项:”;
卡片。按钮。添加(新卡片操作
{
Type=ActionTypes.OpenUrl,
Title=“链接1”,
值=”https://google.com/",
});
卡片。按钮。添加(新卡片操作
{
Type=ActionTypes.OpenUrl,
Title=“链接2”,
值=”https://stackoverflow.com"
});
卡片。按钮。添加(新卡片操作
{
Type=ActionTypes.OpenUrl,
Title=“链接3”,
值=”https://example.com"
});
var activity=MessageFactory.Attachment(card.ToAttachment());
等待turnContext.SendActivityAsync(活动,取消令牌);
}
我在这里没有想法,这看起来应该很简单-任何帮助都将不胜感激!正如您将在中看到的,下面是将元素分配给英雄卡按钮的首选方法。我测试了此实现,没有错误
Buttons=new List{new CardAction(ActionTypes.OpenUrl,“Link 1”,值:https://google.com/") },
按钮=新列表{new CardAction(ActionTypes.OpenUrl,“链接2”,值:“https://stackoverflow.com") },
按钮=新列表{new CardAction(ActionTypes.OpenUrl,“链接3”,值:“https://example.com") }
现在,使用Buttons.add()
应该可以了,但如果有疑问,请使用最佳实践
除此之外,这也可能是团队的问题,而不是BotFramework的问题,因为在前一天测试时,我也看到了错误的链接。但是,今天的测试没有。值得注意的是,我更新到了最近发布的SDK 4.11.0版本
希望得到帮助!马上,一切看起来都是正确的,不知道为什么它不起作用。出于兴趣,您是否需要专门的英雄卡?您可能会更幸运地使用自适应卡,它有更多(而且还在增长)无论如何,希尔顿,我并不特别需要英雄卡,但我永远无法让自适应卡正常工作,我限制自己只在每张卡上写一些文字和几个可点击的按钮,所以英雄卡似乎是一个不错的选择。史蒂文,谢谢你的帮助-我终于回到我的电脑上尝试你的代码,它的功能非常强大现在更好了。这很好用-谢谢!在你的例子中括号有点松鼠,但我把它弄直了。