Discord 机器人无法从服务器发送消息,但可以从私信发送消息

-1 投票
1 回答
40 浏览
提问于 2025-04-12 12:25

我之前做过一个Discord机器人,它运行得很好。但是当我尝试做另一个类似的机器人时,它就不工作了。它在服务器上对我的消息没有反应,但在私信中却能回应。我试着用打印语句来调试,但它就是收不到服务器上的消息。我检查了权限,还把机器人删掉再加回来,甚至还做了另一个机器人和新的服务器,但这两个机器人在服务器上都不能发消息。

这是我写的代码。



import discord

import os



intents = discord.Intents.default()

intents.messages = True  # Enable message events



key = os.environ['Key']



client = discord.Client(intents=intents)



@client.event

async def on_ready():

    print('Connected!')



@client.event

async def on_message(message):

    if message.author == client.user:

        return



    print(f"Received message: {message.content}")  # Debug print statement



    if message.content.startswith('hello'):

        print('Responding to hello message')  # Debug print statement

        await message.channel.send('Hello!')



client.run(key)

谢谢你

这个机器人在私信中工作得很好,但它无法读取服务器上的消息。

1 个回答

0

谢谢,启用这个之后它就能用了

我也不知道为什么这样就能用了,不过,启用“服务器成员意图”和“消息内容意图”之后,它开始能从服务器的频道读取信息了。可能只启用“消息内容意图”也能行,因为这是获取“大部分消息”内容所必需的(我之前已经启用了,但没用)。不过在启用“服务器成员意图”后,它开始能获取消息并且能够回复了。谢谢。

撰写回答