You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动