微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么不能在桌面团队应用程序中使用Microsoft Bot Framework打开带有ActionTypes.OpenUrl的网站?

如何解决为什么不能在桌面团队应用程序中使用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 举报,一经查实,本站将立刻删除。