You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telethon开发的Telegram机器人无法抓取特定消息问题求助

问题描述

用Telethon开发的Telegram用户机器人,能实时获取频道消息并抓取,但部分特定消息对机器人“不可见”——网页/移动端能正常查看,但机器人的事件监听器完全检测不到,这类消息正是需要抓取的目标。试过查询Telegram限制、修改监听代码,都没解决。相关核心代码如下:

with TelegramClient('bot', config('API_ID'), config('API_HASH')) as client:
  ...

  @client.on(events.NewMessage(chats=list(dialog_ids.keys())))
  async def new_message_listener(event):
    new_message = event.message.message
    print(new_message)
可能的解决方案
  • 检查消息类型:你的代码只打印event.message.message(纯文本内容),如果目标消息是媒体(图片/视频)、带格式文本(HTML/Markdown)、服务消息(频道置顶、成员变动),这个字段会是空的。先打印整个event.message对象,查看media、entities、action等字段,判断消息类型后针对性处理。
  • 调整监听参数:events.NewMessage默认可能过滤了部分消息类型,试试取消纯文本过滤、明确监听入站消息:
    @client.on(events.NewMessage(chats=list(dialog_ids.keys()), pattern=None, incoming=True))
    
  • 确认账号权限:如果是私有频道,确保机器人对应的账号已加入频道且有查看消息权限,部分频道可能设置了成员消息读取限制。
  • 验证对话ID:dialog_ids.keys()可能包含错误的频道ID,或者未同步最新频道。可以直接用频道用户名(比如@example_channel)代替ID,避免ID匹配错误。
  • 测试原始API调用:绕过事件监听,直接调用client.get_messages()获取频道最新消息。如果能拿到目标消息,说明是监听配置问题;如果拿不到,可能是Telegram端限制或账号权限问题。

内容的提问来源于stack exchange,提问作者Warshow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 04:30:54