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

Aiogram3新成员问候事件未触发问题求助

问题解决与代码修正

代码核心错误修正

你的代码中send_message方法的第一个参数传入了Chat对象(chat_info),但该方法要求传入聊天ID(整数),这是导致事件未正常响应的直接原因。以下是修正后的完整代码:

from aiogram import F, Router, Bot
from aiogram.filters.chat_member_updated import ChatMemberUpdatedFilter, IS_NOT_MEMBER, MEMBER
from aiogram.types import ChatMemberUpdated

new_member_router = Router()

@new_member_router.chat_member(
    ChatMemberUpdatedFilter(
        member_status_changed=IS_NOT_MEMBER >> MEMBER
    )
)
async def new_member(event: ChatMemberUpdated, bot: Bot):
    # 直接使用event.chat.id作为目标聊天ID,无需额外获取chat_info
    await bot.send_message(
        chat_id=event.chat.id,
        text=f"Hi {event.new_chat_member.user.mention_html()}!",  # 可选:@新成员提升问候友好度
        parse_mode="HTML"
    )

额外排查步骤

如果修正后事件仍未触发,请逐一检查以下项:

  • 机器人权限:确保机器人在目标群组/频道中是管理员,且开启了「读取消息」权限——没有该权限无法接收聊天成员更新事件。
  • 路由注册:在main.py中确认已正确将路由添加到Dispatcher:
    from aiogram import Dispatcher
    from your_module import new_member_router  # 替换为你的路由文件实际路径
    
    dp = Dispatcher()
    dp.include_router(new_member_router)
    
  • 版本兼容性:当前过滤器写法适用于aiogram 3.x,若使用2.x版本需调整语法(建议升级到3.x以使用最新特性)。
  • 中间件拦截:检查是否有全局中间件误拦截了聊天成员更新事件,比如权限校验中间件未放行该类型事件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:04:54