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

Telegram API发送自定义表情异常:仅显示普通表情求助

解决Telegram API发送自定义表情显示为普通表情的问题

你遇到的核心问题是:发送时复用了接收消息返回的text字段内容(普通表情符号),导致Telegram优先显示普通表情,忽略了custom_emoji实体的设置。

正确的发送方式

发送自定义表情时,text字段不能填普通表情符号,应该用一个占位字符(比如零宽度空格\u200B)占据位置,再通过entities指定自定义表情ID。示例请求如下:

{
    "chat_id": 123,
    "text": "\u200B",
    "entities": [
        {
            "offset": 0,
            "length": 1,
            "type": "custom_emoji",
            "custom_emoji_id": "5404870433939922908"
        }
    ]
}

关键原因说明

接收消息时返回的text是Telegram客户端渲染后的显示内容(普通表情),但发送时不能直接复用。自定义表情的发送逻辑是:用占位字符预留位置,通过custom_emoji_id告诉Telegram替换为对应的自定义表情。如果text中填的是普通表情,Telegram会直接显示该表情,忽略实体设置。

额外注意事项

  • 确认Bot所在的聊天有权限使用该自定义表情:部分自定义表情属于特定贴纸包或频道,需要聊天已添加该表情包或表情包为公开可使用状态。
  • 核对offset和length:占位字符长度为1,所以length要设为1,offset对应占位符的起始位置(示例中是0)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:10:27