使用telethon从event.message对象获取发件人的用户名

时间:2019-05-11 14:09:58

标签: telegram telegram-bot telethon

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

我尝试了get_entity,get_input_entity方法。但这显示了错误。 AttributeError:“协程”对象没有属性“聊天” 我什至不知道如何处理协程对象

@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)

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

2 个答案:

答案 0 :(得分:0)

那是我如何弄清楚如何从用户ID获取用户名的方法,希望有人能从中获得好处:

首先从该组中抓取用户并将其保存到词典对象。密钥是用户标识,值是用户名。而且,每当收到消息时,我都会用相应用户名的ID进行查找。

这就是我解决这个问题的方式。

答案 1 :(得分:0)

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

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

出现此错误的原因是您忘记在进行await之前放client.get_input_entity