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

如何用Telegram Bot发送自定义表情?代码失效求低成本方案

问题描述

我用grammy.js写了一段JavaScript代码尝试发送Telegram自定义表情,但无法正常运行。代码如下:

const message = "🚀 dsfs";
teleBot.api.sendMessage(CHANNEL_ID || "", message, {
  entities: [
    {
      type: "custom_emoji",
      length: message.length,
      offset: 0,
      custom_emoji_id: "5100686784019301387",
    },
  ],
});

我查了相关讨论,发现现有方案都提到要在Fragment购买价值5000 TON(约44000美元)的用户名并绑定到Bot,但Telegram Premium仅需33美元/年,想知道有没有更简便的方法,另外能不能用userbot发送自定义表情?


解答

1. 修复代码本身的问题

你的代码里custom_emoji实体的length设置错误:你把整个消息的长度都设为实体长度,但实际上自定义表情只对应消息开头的🚀,这个字符的长度是1。正确的实体配置应该只覆盖这个表情的位置,修正后的代码:

const message = "🚀 dsfs";
teleBot.api.sendMessage(CHANNEL_ID || "", message, {
  entities: [
    {
      type: "custom_emoji",
      length: 1, // 仅覆盖表情字符
      offset: 0,
      custom_emoji_id: "5100686784019301387",
    },
  ],
});

不过即使修正了代码,Bot要发送自定义表情还是需要满足权限要求。

2. Bot发送自定义表情的权限限制

目前Telegram官方的规则是:只有绑定了通过Fragment购买的认证自定义用户名的Bot,才能发送自定义表情。Telegram Premium的权限是针对普通用户账号的,和Bot账号无关,所以开通Premium不能让Bot获得发送自定义表情的权限,也没有官方的低成本替代方案。

3. Userbot发送自定义表情的可行性

可以用userbot发送自定义表情。Userbot本质是模拟普通用户账号的自动化工具,只要你用来运行userbot的普通用户账号开通了Telegram Premium,就可以像正常用户一样发送自定义表情,不需要依赖Bot的特殊权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:48:19