3

嗨,我正在使用电报 API 电视马拉松。在这里,我想在 python 代码中不断地收听组消息。

我能够阅读来自组的消息,但每次我需要运行代码。有什么方法可以实现它,我的代码应该同步收听消息。

下面是给我分组消息的代码片段。需要在其中添加监听器代码。

client = TelegramClient('session_read', api_id, api_hash)
client.start()

dialog_count = 50
dialogs = client.get_dialogs(dialog_count)
for i, entity in enumerate(dialogs):

    if entity.name == 'GroupName':
     print('{}'.format(entity.message.message))
4

1 回答 1

8

Telethon 具有此处记录的事件处理程序。对于基本的新消息处理程序,第一个示例应该执行以下操作:

from telethon import TelegramClient, events

client = TelegramClient('session_read', api_id, api_hash)

@client.on(events.NewMessage)
async def my_event_handler(event):
    print('{}'.format(event))

client.start()
client.run_until_disconnected()

如果要检查它是否在特定组中,可以使用chats参数 on events.NewMessage

@client.on(events.NewMessage(chats=("GroupName", "Group2")))
async def my_event_handler(event):
    print(event)

还有很多其他过滤选项,所以我建议查看前面链接的文档。

于 2018-12-16T14:02:54.233 回答