Discord机器人无法获取message.content内容问题求助
解决Discord机器人无法读取消息content的问题
问题出在你没有启用消息内容意图(Message Content Intent)——Discord新版API要求必须显式开启这个权限,才能获取消息的content内容,否则只会返回空值。
解决分两步:
- 先去Discord开发者平台的机器人设置里,找到“Privileged Gateway Intents”选项,开启“Message Content Intent”权限。
- 然后修改代码里的Intents配置,加上消息内容权限:
修改后的完整代码:
import discord class MyClient(discord.Client): async def on_ready(self): print('Logged in as') print(self.user.name) print(self.user.id) print('------') async def on_message(self, message: discord.Message): # 避免机器人回复自己 print(message.id) if message.author.id == self.user.id: return if message.content.startswith('!hello'): print('ok') await message.channel.send('Hello {0.author.mention}'.format(message)) defIntents = discord.Intents.default() defIntents.members = True # 启用消息内容意图 defIntents.message_content = True client = MyClient(intents=defIntents) client.run('token')
注意:必须同时完成开发者后台的权限开启和代码配置,两者缺一不可,否则还是无法读取消息内容。
内容的提问来源于stack exchange,提问作者Noam
相关产品推荐
相关产品推荐

