使用Telethon在特定频道中发送消息时,如何执行操作?

时间:2020-07-22 14:38:23

标签: python bots telegram telethon

我正在尝试获取频道中新消息的消息内容,但是telethon文档非常混乱,我不知道如何指定特定频道。

1 个答案:

答案 0 :(得分:0)

Updates in the docs的介绍介绍了如何注册处理程序:

from telethon import TelegramClient, events

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

@client.on(events.NewMessage)
async def my_event_handler(event):
    if 'hello' in event.raw_text:
        await event.reply('hi!')

client.start()
client.run_until_disconnected()

它具有指向events.NewMessage的链接,我们可以看到它具有以下可选参数:

class NewMessage(chats=None, *, blacklist_chats=False, func=None, incoming=None, outgoing=None, from_users=None, forwards=None, pattern=None)

它还声称以下内容:

碱基:telethon.events.common.EventBuilder

在这里,我们找到了chats的文档:

可以是一个或多个实体(用户名/对等体/等等),最好是ID。默认情况下,仅会处理匹配的聊天。

将它们放在一起:

MY_CHANNEL = -1001234  # or 'username', or invite link, etc.

@client.on(events.NewMessage(MY_CHANNEL))
async def my_event_handler(event):
    pass  # do work...