Teams Who Bot可操作消息语法?O365ConnectorCard未公开功能咨询
关于Teams机器人O365ConnectorCard重现Who Bot人员滚动列表及板块点击的解决方案
我之前专门研究过Who Bot的这个交互效果,其实它并没有完全依赖公开的O365ConnectorCard标准语法,而是结合了Teams客户端的专属扩展支持,甚至部分是微软内部的私有实现逻辑。下面分两部分帮你拆解问题:
一、人员滚动列表的实现思路
- 首先明确:公开文档里的O365ConnectorCard Section只能实现静态文本/图片列表,没有原生的滚动交互。Who Bot的滚动人员列表大概率是用了Teams自定义卡片扩展,而非纯O365ConnectorCard的Section。
- 另一种可能是它用了未公开的私有字段(比如在Section里添加
scrollable: true这类未文档化属性),但这种内部专属的语法外部开发者无法直接复用,微软不会对外提供支持。 - 替代方案(亲测可行):改用自适应卡片(Adaptive Cards),它支持
Container结合scrollable属性,轻松实现横向/纵向滚动的人员卡片列表,这是公开支持的标准语法,示例代码如下:
{ "type": "AdaptiveCard", "version": "1.4", "body": [ { "type": "Container", "style": "default", "scrollable": true, "items": [ { "type": "ColumnSet", "columns": [ { "type": "Column", "width": "auto", "items": [ { "type": "Image", "url": "https://example.com/jim.jpg", "size": "Small" } ] }, { "type": "Column", "width": "stretch", "items": [ { "type": "TextBlock", "text": "Jim Contoso", "weight": "Bolder" }, { "type": "TextBlock", "text": "jim@contoso.com", "size": "Small", "color": "Secondary" } ] } ] }, // 这里可以重复添加更多人员项 ] } ] }
二、板块点击效果的实现方法
- Who Bot的板块点击不是通过O365ConnectorCard的
PotentialAction实现的——PotentialAction仅支持按钮级别的交互,没法覆盖整个板块区域。 - 如果要实现类似的板块级点击,自适应卡片是最优选择:给
Container添加selectAction属性,就能让整个板块区域可点击,示例代码如下:
{ "type": "Container", "selectAction": { "type": "Action.Execute", "title": "查看人员详情", "data": { "userEmail": "jim@contoso.com" } }, "items": [ // 这里放入板块的具体内容,比如人员信息、头像等 ] }
- 要是你坚持要用O365ConnectorCard,只能退而求其次:在Section里添加一个全屏样式的按钮(通过调整布局模拟板块点击),但这种方式的交互体验远不如自适应卡片自然,不推荐。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

