You need to enable JavaScript to run this app. Python开发Discord欢迎机器人on_member_join事件无响应无报错求助
优惠活动
大模型
产品
解决方案
定价
更多

Python开发Discord欢迎机器人on_member_join事件无响应无报错求助

问题原因
  • 变量名不统一:你初始化的机器人实例命名为bot,但on_member_join事件中调用了未定义的client对象获取频道,若事件触发会抛出名称错误,但当前事件未被触发所以无报错。
  • 未开启成员监听特权意图:Discord API v8及以上版本默认关闭服务器成员相关的特权推送意图,未手动开启的话on_member_join事件不会被推送到你的机器人,自然不会触发对应逻辑也不会报错。
  • 消息格式不符合@需求:当前代码使用member.name只会输出用户昵称文本,无法实际@到对应用户。
解决方法
  1. 首先进入Discord开发者后台的对应机器人设置页,在「Privileged Gateway Intents」分类下开启Server Members Intent开关。
  2. 修正代码内的变量名错误,补充意图声明,调整@用户的消息格式,修正后代码如下:
import discord
from discord.ext import commands

# 声明启用的意图,开启成员监听权限
intents = discord.Intents.default()
intents.members = True

bot = commands.Bot(command_prefix='Please', intents=intents)

@bot.command()
async def _say(ctx, arg):
    await ctx.send(arg)

@bot.event
async def on_member_join(member):
    # 修正变量名,使用member.mention实现@用户效果
    await bot.get_channel(819281283803906071).send(f"{member.mention} has joined")

bot.run('Token')
  1. 确认你的机器人账号拥有目标频道的「发送消息」、「提及@everyone、@here和所有角色」权限,避免权限不足导致消息发送失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 02:36:04