Telethon Client无法发送高级表情符号的问题及HTML模式下正确实现方法咨询
Telethon Client无法发送高级表情符号的问题及HTML模式下正确实现方法咨询
嗨,我来帮你分析下这个问题哈!
你遇到的情况是因为Telethon默认的HTML解析器并不识别<tg-emoji>这个标签,所以它会直接忽略掉emoji-id属性,只渲染标签里的普通表情符号,这就是为什么发送出去的是普通的☝️而不是你想要的高级表情。
接下来给你两种HTML模式下的正确实现方法:
方法一:使用Telethon支持的<emoji>标签
Telethon的HTML解析器支持<emoji>标签来识别高级表情,只需要把你原来的<tg-emoji>换成<emoji>就可以了,代码示例如下:
await client.send_message( entity="me", message='<emoji id="5301096984617166561">☝️</emoji>', parse_mode="html" )
方法二:手动构造自定义表情实体
如果你的Telethon版本比较旧,上面的方法不生效,可以手动构造MessageEntityCustomEmoji实体,通过entities参数传入,代码示例:
from telethon.tl.types import MessageEntityCustomEmoji await client.send_message( entity="me", message='☝️', entities=[MessageEntityCustomEmoji(offset=0, length=1, document_id=5301096984617166561)] )
另外要注意,建议先把你的Telethon升级到最新版本,因为高级表情的相关支持是在后续版本中新增的,升级命令:
pip install --upgrade telethon
备注:内容来源于stack exchange,提问作者tegularis




