【发布时间】:2019-11-15 08:50:09
【问题描述】:
我正在开发一个 Teams 机器人,我正在尝试各种方法从我的机器人向用户发送丰富的消息(我们需要可点击的按钮)。我已经尝试过几乎完美的自适应卡片,但注意到在消息的吐司弹出窗口中它只是说“Testbot发送了一张卡片”。这并不理想,因为我们希望显示消息的概览。
我注意到,当您使用天气应用程序向其他用户发送卡片时,它会产生预期的效果 - 简短的天气摘要会出现在 toast 弹出窗口中。查看代表该消息的 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 发送时,我认为我需要做的不仅仅是将字符串作为内容发送。我尝试将自适应卡片渲染到 HTML 并附加生成的 RenderedAdaptiveCard 对象,但仍然遇到相同的异常。
--
编辑 2:
当同事使用天气应用向我发送卡片时: https://i.imgur.com/BlBk557.png
我得到以下祝酒词: https://i.imgur.com/EoO8COj.png
当使用该工具向机器人发送消息时,我可以看到带有 text/html 类型附件的消息。
我试图通过从机器人向用户发送一条消息来复制这一点,该用户带有文本/html 类型的附件和内容字段中的一些 HTML。我现在看到,当我这样做时,serviceUrl 有一个 400 响应,上面写着
{"error":{"code":"BadArgument","message":"Unknown attachment type"}}
我认为我所做的假设可能是基于误解。我认为我们不能像天气应用程序那样在卡片上添加信息性文本?
【问题讨论】:
-
欢迎来到 Stack Overflow :) 能否请您在问题中包含异常,这将有助于我们识别问题
-
@rugt0r 请尝试rendering adaptive card to html 将您的卡片作为 Html 附件发送。
-
感谢您的建议,我已经更新了原帖。仍然没有快乐。
-
@rugt0r 你能分享一下你所期待的截图吗?目前,当机器人发送卡片时,我们会收到如下祝酒词:i.stack.imgur.com/wHyQx.png
-
谢谢。我将使用我更新的信息编辑原始帖子。
标签: c# .net microsoft-teams