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

如何通过Telegram API让机器人发送自定义表情(Custom Emoji)

使用Telegram API发送自定义表情(custom_emoji)的问题与解决

问题描述

尝试通过Telegram API的MessageEntity对象发送custom_emoji,使用Telegraf TS编写的代码如下:

const message = '🚀'
ctx.sendMessage({
  text: message,
  entities: [{
    type: 'custom_emoji',
    length: message.length,
    offset: 0,
    custom_emoji_id: '5389102131527556772'
  }]
})

注:使用Telegraf TS不影响核心功能。

解决方法

这段代码无法正常触发自定义表情的原因是text字段的占位内容错误:当使用custom_emoji类型的实体时,text中对应位置不能是普通表情,需要用一个占位符字符(比如单个空格、零宽度空格\u{200B}),Telegram会用指定的自定义表情替换这个占位符。

修正后的代码:

// 用单个空格作为占位符
const message = ' '
ctx.sendMessage({
  text: message,
  entities: [{
    type: 'custom_emoji',
    length: message.length,
    offset: 0,
    custom_emoji_id: '5389102131527556772'
  }]
})

额外注意事项:

  • 确认Bot在目标聊天中有权限发送自定义表情,且目标表情ID属于你有权限使用的表情包
  • custom_emoji_id必须是有效的官方ID,可通过抓取已发送的自定义表情消息实体获取正确格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:25:45