如何在Microsoft Teams创建新聊天线程时@提及团队?
解决在Microsoft Graph API创建聊天线程时@整个团队的问题
我刚搞定过类似的场景!直接在消息内容里敲@team只会显示成普通文本,根本触发不了团队提及——这是因为Graph API要求你通过结构化的提及元数据来明确指定要@的对象,而不是靠纯文本识别。
下面是正确的实现方式:
核心原理
要@整个团队,你需要同时做两件事:
- 在消息的HTML内容里用
<at>标签包裹提及文本,并且给标签指定一个ID; - 在
mentions数组里添加对应的团队提及对象,把ID和团队信息关联起来。
完整请求体示例
这里是调用channel/postChatThreads接口的请求体模板,你替换成自己的团队/频道ID就能用:
{ "topic": "项目启动讨论", "posts": [ { "body": { "contentType": "html", "content": "各位<at id=\"0\">@Team</at>,咱们来同步下新项目的进度安排!" }, "mentions": [ { "id": 0, "mentionType": "team", "team": { "id": "你的团队ID" }, "text": { "content": "@Team", "contentType": "text" } } ] } ], "channelIdentity": { "teamId": "你的团队ID", "channelId": "你的频道ID" } }
关键细节说明
- contentType必须设为html:只有HTML格式的内容才能解析
<at>标签,纯文本格式不支持提及功能; - ID要一一对应:
<at id="0">里的ID必须和mentions数组中对象的id值完全匹配; - 权限检查:确保你的应用已经获取了正确的权限(比如beta版接口需要
ChannelMessage.Send权限),否则会返回权限不足的错误。
这样发送后,团队里的所有人都会收到提及通知,消息里的@Team也会变成可点击的团队提及样式啦!
内容的提问来源于stack exchange,提问作者Wesley Hackett




