首页 > 解决方案 > 使用 Telethon 从 event.message 对象获取发件人的用户名

问题描述

当消息到达组时,我无法获取 event.message 对象的发送者的用户名。

我尝试了 get_entity、get_input_entity 方法。但这表明错误。AttributeError: 'coroutine' object has no attribute 'chat' 我什至不知道如何处理 coroutine 对象

@client.on(events.NewMessage(chats=input_groups_entity))
    async def handler(event):
        print(event)
        sender = event.message.chat_id
        perticipants = client.get_participants(event.message.to_id)
        np = client.get_input_entity(event.message.from_id)
        await client.send_message(event.message.to_id, message=event.message.message)

我只想从消息对象中提取用户名

标签: telegramtelegram-bottelethon

解决方案


要获取有关发件人的完整信息,您需要执行以下操作:

sender = await event.get_sender()
print(sender.username)

你得到这个错误的原因是你忘了await在做之前放client.get_input_entity


推荐阅读