You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft Graph API在Teams频道发送含表情的消息?

解决Teams频道消息添加表情的BadRequest问题

你遇到的问题是因为使用了Teams不支持的<emoji>标签,且HTML实体转义后的Unicode字符触发了API的格式校验。以下是正确的解决方法:

  • 替换无效标签,直接使用Unicode表情字符
    Teams的消息HTML内容不支持自定义<emoji>标签,你需要把十六进制表情值转换成对应的Unicode字符,直接嵌入到消息内容里。

  • C#中转换十六进制到Unicode字符的方法
    假设你手里的表情十六进制值是1F600,可以用这段代码转换:

// 十六进制表情值(去掉前缀&#x)
string emojiHex = "1F600";
// 转换为整数编码
int emojiCodePoint = int.Parse(emojiHex, System.Globalization.NumberStyles.HexNumber);
// 转换为Unicode字符
string emoji = char.ConvertFromUtf32(emojiCodePoint);
  • 构造正确的ChatMessage对象
    把转换后的表情直接放到HTML内容中,同时确保ContentType设为Html:
var chatMsg = new ChatMessage
{
    Body = new ItemBody
    {
        ContentType = BodyType.Html,
        Content = $"<div class=\"myDiv\">3/30/2023 7:28:01 PM <br/>{emoji}</div>"
    }
};
  • 调用API发送消息
    保持你原有的调用代码即可:
await clientWithDelegatedToken.Teams[teamId].Channels[channelId].Messages.Request().AddAsync(chatMsg);

原理:Teams支持直接在HTML消息中显示标准Unicode表情字符,Graph SDK会自动处理字符的JSON转义,避免触发"Unicode不支持"的错误提示。

内容的提问来源于stack exchange,提问作者CloudAnywhere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 11:43:07