discord.py机器人无法读取Discord消息问题求助
解决Discord机器人无法读取消息内容的问题
问题原因
Discord网关权限更新后,discord.Intents.default() 默认不包含消息内容读取权限,导致机器人无法获取用户发送的消息内容,因此打印时内容为空。
解决步骤
1. 在Discord开发者平台开启权限
进入你的机器人应用页面,找到「Privileged Gateway Intents」选项,开启「Message Content Intent」权限。
2. 修改代码中的Intents配置
更新代码的Intents初始化部分,明确启用消息内容权限:
import discord import random import os # 初始化Intents并开启消息内容权限 intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents) @client.event async def on_ready(): print('We have logged in as {0.user}'.format(client)) @client.event async def on_message(message): # 跳过机器人自身发送的消息,避免循环触发 if message.author == client.user: return username = str(message.author).split('#')[0] user_message = message.content channel = str(message.channel.name) print(f'{username}: {user_message} ({channel})')
额外说明
- 必须同时完成平台权限开启和代码修改,否则机器人仍无法读取消息内容
- 新增的
if message.author == client.user判断是为了防止机器人响应自己的消息,避免不必要的触发
内容的提问来源于stack exchange,提问作者d224
相关产品推荐
相关产品推荐

