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

Pyrogram UserBot莫名无法接收特定频道消息的技术求助

排查Pyrogram UserBot无法接收特定频道消息的方案

1. 确认账号的频道订阅与权限状态

  • 检查UserBot所用账号是否已订阅目标频道,且未被频道设置静音/屏蔽(客户端的静音设置会同步影响UserBot的消息推送)。
  • 调用get_chat_member(chat_id, app.me.id)查看账号在频道内的身份,确保是普通成员及以上权限,部分频道可能限制非管理员的消息推送。

2. 验证Pyrogram版本与会话有效性

  • 升级Pyrogram到最新稳定版:pip install --upgrade pyrogram tgcrypto,旧版本可能存在Telegram API兼容性问题。
  • 重新生成会话文件:备份原session.session后,重新执行登录流程生成新会话,避免会话过期或损坏导致的推送异常。

3. 排查Telegram侧的推送限制

  • 用同一账号在官方客户端测试,确认目标频道的消息能实时接收,排除频道本身设置(如消息延迟、仅特定用户可见)的问题。
  • 在app.run()中显式指定worker数量:app.run(workers=4),避免单worker处理阻塞导致消息丢失。

4. 底层更新监听调试

  • 添加原始更新处理器,确认是否真的未收到频道推送:
    @app.on_raw_update()
    def handle_raw_update(client, update, users, chats):
        print(f"Raw update: {update}")
    
    如果这里能捕获到频道更新,说明问题出在消息过滤或处理环节;如果没有捕获,说明账号未收到Telegram的推送通知。

5. 适配非文本消息的日志记录

  • 目标频道可能发送媒体、贴纸、投票等非文本消息,原日志仅打印message.text会导致这类消息无日志输出。修改日志代码:
    log(client,f"Received message: {message.text or '[非文本消息]'} \nfrom: {message.chat.title}")
    
    同时保留print(message)输出完整消息结构,确认是否有非文本消息被遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:15:01