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

如何让Discord Bot接收指令后附带的文本 命令无响应问题求助

问题原因
  • 未开启消息内容意图(Message Content Intent):discord.py v2.0及以上版本默认禁用该权限,机器人无法读取用户发送的普通消息内容,无法识别!!send命令。
  • 调用了已废弃的API:client.say() 是discord.py早期版本的方法,新版本已完全移除,无法正常执行消息发送逻辑。
  • 机器人缺少对应频道的发送消息权限,命令触发后无法返回内容。
  • 存在冗余代码:先实例化discord.Client()再重新赋值为commands.Bot(),属于无效定义,存在潜在运行风险。
  • 参数冗余:pass_context=True 是discord.py v1.x版本的适配参数,v1.5之后默认自动传递上下文,该参数已失效。
修复步骤

1. 开发者后台开启权限

进入Discord开发者平台的对应机器人管理页,找到「Privileged Gateway Intents」分区,开启Message Content Intent开关。

2. 替换修正后的代码

import discord
import os
from discord.ext import commands

os.environ["TOKEN"] = "no-token-for-you-to-see-here"

# 声明意图权限
intents = discord.Intents.default()
intents.message_content = True
client = commands.Bot(command_prefix = '!!', intents=intents)

@client.event
async def on_ready():
    print("bot online")
    
@client.command()
async def send(ctx,*,message):
    await ctx.send(message)

client.run(os.getenv("TOKEN"))

3. 权限校验

确认机器人在触发命令的频道中,被分配了「发送消息」的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:36:03