如何使用Telethon监听Telegram消息的反应?
监听Telegram消息反应的Telethon实现方法
Telethon 提供了 events.MessageReaction 事件,专门用于监听消息的新反应,用法和你处理新消息的方式完全一致,无需轮询所有消息。
示例代码
from telethon import TelegramClient, events # 替换为你的API凭证 api_id = 你的API_ID api_hash = '你的API_HASH' client = TelegramClient('reaction_session', api_id, api_hash) @client.on(events.MessageReaction()) async def handle_reaction(event): reactor_id = event.sender_id target_message_id = event.message_id # 取最新添加的反应(event.reactions是当前消息的所有反应列表) latest_reaction = event.reactions[-1] if event.reactions else None if latest_reaction: print(f"用户 {reactor_id} 给消息 {target_message_id} 添加了反应: {latest_reaction}") with client: client.run_until_disconnected()
关键说明
- 事件触发时机:当任何用户给消息添加新反应时,该事件会立即触发
- 过滤特定对象:可以给事件添加过滤条件,比如只监听指定聊天或用户:
# 只监听特定聊天的反应 @client.on(events.MessageReaction(chats=[-1001234567890])) # 只监听特定用户的反应 @client.on(events.MessageReaction(users=[123456789])) - 版本要求:确保你的Telethon版本是最新的,旧版本可能没有这个事件,升级命令:
pip install --upgrade telethon
内容的提问来源于stack exchange,提问作者rvnikita
相关产品推荐
相关产品推荐

