从Microsoft Teams机器人发送HTML附件

时间:2019-07-04 15:23:06

标签: c# .net microsoft-teams

我正在开发一个Teams机器人,并且正在尝试各种方法来从我的机器人向用户发送丰富的消息(我们需要可点击的按钮)。我曾经尝试过自适应卡,它们几乎是完美的,但在吐司弹出消息中仅显示“ Testbot发送了卡”。这不是理想的选择,因为我们希望显示消息概述。

我注意到,当您使用气象应用程序将卡发送给另一位用户时,它具有预期的效果-吐司弹出窗口中会显示天气的简短摘要。在代表该消息的JSON内部查看,表明“卡”实际上是HTML附件。

我可以通过发送HTML附件来复制它吗?我(天真的)尝试了以下操作,但会导致异常:

            Activity reply = new Activity();
            reply.Type = ActivityTypes.Message;
            reply.Text = "Test the toast";

            reply.Conversation = new ConversationAccount()
            {
                Id = conversationResponse.Id
            };
            reply.Attachments.Add(new Attachment()
            {
                ContentType = "text/html",
                Content = "<div>Some generated html</div>"
            });

我是完全把错误的树吠叫吗?

谢谢。

编辑:

我得到的异常是mscorlib.dll中的“操作返回了无效的状态代码'BadRequest'”。

对于自适应卡,我可以执行以下操作,并且效果很好:

                reply.Attachments.Add(new Attachment()
                {
                    ContentType = "application/vnd.microsoft.card.adaptive",
                    Content = JsonConvert.DeserializeObject("{Some generated JSON}")
                });

当尝试将附件发送为HTML时,我认为我需要做的不仅仅是将字符串作为Content发送。我尝试将自适应卡呈现为HTML并附加生成的RenderedAdaptiveCard对象,但仍然遇到相同的异常。

-

编辑2:

当同事使用天气应用向我发送卡片时: https://i.imgur.com/BlBk557.png

我得到以下吐司: https://i.imgur.com/EoO8COj.png

使用该工具向机器人发送消息时,我可以看到带有text / html类型附件的消息。

我试图通过从机器人向用户发送消息(在内容字段中带有text / html类型和某些HTML附件的附件)来复制此消息。现在,我发现执行此操作时,来自serviceUrl的响应为

{"error":{"code":"BadArgument","message":"Unknown attachment type"}}

我认为也许我所做的假设是基于误解。我认为我们不能像气象应用程序那样在卡片的吐司面包上添加翔实的文字?

1 个答案:

答案 0 :(得分:0)

看来这是不可能的。查看关于OP的评论:

“机器人不支持HTML附件”-Gousia-MSFT