Telethon如何获取消息所回复的目标发送方的用户ID与个人资料
Telethon 获取回复消息对应的原发送方ID方法
实现步骤
你拿到的回复消息属于Telethon的Message对象的前提下,直接调用内置方法即可获取目标信息:
- 调用当前消息的
get_reply_message()异步方法,拉取被回复的原消息完整对象 - 从原消息对象的
from_id属性中提取用户ID
示例代码
# current_msg 为你已获取的、作为回复的Telethon消息对象 replied_original_msg = await current_msg.get_reply_message() if replied_original_msg and replied_original_msg.from_id: # 提取用户ID original_sender_id = replied_original_msg.from_id.user_id # 后续业务逻辑 print(original_sender_id)
注意事项
- 若原消息已被删除、原发送方账号已注销/封禁,
get_reply_message()会返回None,需要提前做非空判断避免报错 - 如果原消息是频道匿名发送的,
from_id会返回频道ID而非具体用户ID,需要结合业务场景区分处理 - 不想额外触发接口请求的场景下,也可以直接读取
current_msg.reply_to.reply_to_msg_id拿到原消息ID,自行匹配本地存储的消息记录获取发送方ID,这种方法适合已经批量同步过对话消息的场景
内容的提问来源于stack exchange,提问作者Кирилл
相关产品推荐
相关产品推荐

