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

Discord机器人无响应、不执行命令问题求助

Discord机器人无法响应命令的排查与解决

问题概述

机器人已正常在线(on_ready事件触发并输出Bot is ready),但精简后的!!ping命令无任何响应——终端未输出listening,频道也没有回复消息。

排查与解决方案

1. 检查机器人权限

  • 确保机器人拥有查看频道、读取消息历史、发送消息的基础权限,可在Discord开发者门户的OAuth2权限设置中勾选对应权限后,重新邀请机器人至服务器。
  • 检查目标频道的权限设置,确认机器人在该频道内有读取消息和发送消息的权限。

2. 验证命令前缀与输入格式

  • 确认发送命令时使用的是半角符号!!,无额外空格或全角字符(默认情况下前缀后不能带空格,避免!! ping这类输入)。
  • 可临时将前缀改为!这类简单字符,测试是否能触发命令。

3. 处理Discord.py版本兼容问题

旧代码若基于Discord.py v1.x编写,在v2.x版本中需启用消息内容意图:

  • 登录Discord开发者门户,进入机器人页面,在「Privileged Gateway Intents」中开启「Message Content Intent」。
  • 修改代码中的Bot初始化逻辑,添加意图参数:
    intents = discord.Intents.default()
    intents.message_content = True
    client = commands.Bot(command_prefix='!!', intents=intents)
    

4. 确认Token正确性

检查client.run()中的机器人Token是否正确,无多余空格、引号错误或过期情况。

修正后的完整测试代码

import discord
from discord.ext import commands, tasks

intents = discord.Intents.default()
intents.message_content = True
client = commands.Bot(command_prefix='!!', intents=intents)

@client.event
async def on_ready():
    print('Bot is ready')

@client.command(name="ping")
async def ping(ctx):
    print('listening')
    await ctx.send(f'Pong! {round(client.latency * 1000)}ms')

# 替换为你的机器人Token
client.run('你的机器人Token')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:25:19