DiscordPY Bot Intents失效求助:!ping无响应且偶发WebSocket 4013错误
解决Discord机器人无响应及4013错误
问题根源
你碰到的!ping无响应和「Shard ID None WebSocket closed with 4013」错误,核心原因是Discord特权Intent未正确配置——Discord要求必须在开发者后台手动启用特定Intent,仅靠代码设置无法生效。
修复步骤
1. 启用开发者后台的特权Intent
- 打开你的机器人对应的Discord开发者应用页面,进入「Bot」标签
- 找到「Privileged Gateway Intents」板块,开启Message Content Intent(这是机器人读取消息命令的必要权限)
- 若后续需要成员、状态相关功能,可同步开启「Server Members Intent」和「Presence Intent」,但
ping命令仅需前者
2. 修正代码中的Intent设置
不要用数值初始化Intents,改用清晰的方式开启必要权限:
import os import discord from discord.ext import commands from dotenv import load_dotenv load_dotenv() TOKEN = os.getenv('DISCORD_TOKEN') # 初始化默认Intent,显式开启消息内容权限 intents = discord.Intents.default() intents.message_content = True client = commands.Bot(command_prefix="!", intents=intents) @client.command() async def ping(ctx): await ctx.send('Pong!') client.run(TOKEN)
3. 验证基础配置
- 确认
.env里的DISCORD_TOKEN是从「Bot」标签复制的Bot Token,别错用了Client Secret - 重启机器人,确保代码修改生效
- 检查机器人在目标频道的权限:确认拥有「发送消息」权限(即使有管理员权限,也可能被频道单独限制)
补充说明
4013错误本质是代码请求的Intent未在后台启用,或权限不足。完成以上步骤后,机器人应该能正常响应!ping命令。
内容的提问来源于stack exchange,提问作者Jay Eimas
相关产品推荐
相关产品推荐

