Python 如何使用telethon从电报频道接收新消息

Python 如何使用telethon从电报频道接收新消息,python,telethon,Python,Telethon,我使用给出的代码接收来自用户的新消息,但当新消息到达电报通道时,它不起作用 @bot.on(events.NewMessage) async def my_event_handler(event): print(event.stringify()) 设置events.NewMessagechat='chat'或events.NewMessagechat='channel'无效 电报机器人如何从电报频道获取新消息事件?要让机器人接收所有消息,首先需要通过禁用机器人隐私在中对其进行配置:

我使用给出的代码接收来自用户的新消息,但当新消息到达电报通道时,它不起作用

@bot.on(events.NewMessage)
async def my_event_handler(event):
    print(event.stringify())
设置events.NewMessagechat='chat'或events.NewMessagechat='channel'无效


电报机器人如何从电报频道获取新消息事件?

要让机器人接收所有消息,首先需要通过禁用机器人隐私在中对其进行配置:

/开始 /Mybot 选择一个机器人 机器人设置 团体隐私 关掉 完成后,将bot作为管理员添加到您的广播频道,他们不能成为这里的普通成员。您的代码应该如下所示:

通道=。。。频道的id、用户名或邀请链接 第一个参数是'chats=`,如果需要,可以使用命名参数 @bot.onevents.NewMessageCHANNEL 异步定义我的事件\u句柄事件: printevent.stringify 如果要处理来自您的组所在的所有广播频道的消息,请使用更高级的筛选器:

超级组也是频道,所以我们不需要e.is_组` 此lambda接受具有以下布尔属性的事件 @bot.onevents.NewMessagefunc=lambda e:e.is_通道而非e.is_组 异步定义我的事件\u句柄事件: printevent.stringify
要使bot接收所有消息,您首先需要通过禁用bot隐私在中对其进行配置:

/开始 /Mybot 选择一个机器人 机器人设置 团体隐私 关掉 完成后,将bot作为管理员添加到您的广播频道,他们不能成为这里的普通成员。您的代码应该如下所示:

通道=。。。频道的id、用户名或邀请链接 第一个参数是'chats=`,如果需要,可以使用命名参数 @bot.onevents.NewMessageCHANNEL 异步定义我的事件\u句柄事件: printevent.stringify 如果要处理来自您的组所在的所有广播频道的消息,请使用更高级的筛选器:

超级组也是频道,所以我们不需要e.is_组` 此lambda接受具有以下布尔属性的事件 @bot.onevents.NewMessagefunc=lambda e:e.is_通道而非e.is_组 异步定义我的事件\u句柄事件: printevent.stringify
如果您只想获取消息文本而不是整个json,可以尝试以下方法

print(event.message.message)

如果您只想获取消息文本而不是整个json,可以尝试以下方法

print(event.message.message)

聊天是用来过滤的一个非常具体的聊天给予一些标识符,如ID或用户名,而不是类型。如果不使用聊天过滤器,那么如何获得新的消息从频道?据我所知,机器人将不会收到频道消息。这是电报的设计。你需要为此创建一个用户会话。我见过许多电报频道,每当发出/somecommand时,bot都会在其中进行回复。聊天用来根据特定的聊天进行过滤,提供一些标识符,如ID或用户名,而不是键入。如果不使用聊天过滤器,那么如何从该频道获取新消息?据我所知,机器人程序将不会接收通道消息。这是电报的设计。您需要为此创建一个用户会话。我已经看到许多电报通道,每当发出/somecommand时,bot都会在其中应答。