Discord 机器人无法从服务器发送消息,但可以从私信发送消息
我之前做过一个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
我也不知道为什么这样就能用了,不过,启用“服务器成员意图”和“消息内容意图”之后,它开始能从服务器的频道读取信息了。可能只启用“消息内容意图”也能行,因为这是获取“大部分消息”内容所必需的(我之前已经启用了,但没用)。不过在启用“服务器成员意图”后,它开始能获取消息并且能够回复了。谢谢。