如何使用telebot获取“用户加入群组”等类型的系统消息?
入群系统消息删除功能失效排查方案
1. 确认机器人基础配置
- 必须给机器人开启群聊的删除消息权限,无该权限时删除操作会静默失败,不会返回任何报错
- 要开启机器人的群消息访问权限,如果是Telegram Bot需要在@BotFather中关闭隐私模式:发送
/setprivacy指令,选择对应机器人后设置为Disable,否则机器人收不到非指令类的群消息,包括入群系统消息,自然不会触发后续逻辑,也不会有返回内容
2. 检查事件监听逻辑
你调用的message.new_chat_members是Telegram Bot API的入群事件字段,需要确认你的开发框架监听的是全量message事件,部分框架会把入群、退群这类系统消息归类到独立的chat_member_updated事件,这种情况下普通message事件不会被触发,代码逻辑自然不会运行。
3. 验证删除消息的参数完整性
删除群消息必须同时传递两个必填参数,缺省时会触发静默失败:
- 群聊唯一标识
chat_id - 待删除的入群系统消息自身的
message_id,注意该ID是消息的ID,不是新入群用户的ID
参考调用示例(python-telegram-bot框架):
async def delete_join_msg(update: Update, context: ContextTypes.DEFAULT_TYPE): if update.message.new_chat_members: await context.bot.delete_message( chat_id=update.effective_chat.id, message_id=update.effective_message.id )
4. 特殊场景排查
- 机器人必须是群管理员才能删除其他用户发送的系统消息,普通成员身份下删除操作会静默失败
- Telegram API仅允许删除48小时内的群消息,如果入群消息已经超时,删除操作不会生效
内容的提问来源于stack exchange,提问作者Saidabbaskhan Saidkamalov
相关产品推荐
相关产品推荐

