为什么我的Discord机器人无法上线?代码无报错却无法启动
Discord机器人无法上线的问题修复
核心问题
你把启动机器人的client.run(TOKEN)放在了on_ready事件函数内部,这是完全错误的逻辑:
client.run()是用来启动机器人、建立Discord连接的核心方法on_ready事件是机器人成功连接并就绪后才会触发的回调函数- 当前代码陷入死循环:要触发
on_ready才能执行run(),但run()没执行的话机器人根本连不上,自然无法完成上线
修复后的bot.py代码
import discord import responses async def send_message(message, user_message, is_private): try: response = responses.response_handle(user_message) await message.author.send(response) if is_private else await message.channel.send(response) except Exception as e: print(e) def run_flea(): TOKEN = 'my token' client = discord.Client(intents=discord.Intents.default()) @client.event async def on_ready(): print("Flea is now running") # 机器人就绪后才会打印这句话 # 把启动语句移到事件定义外面,这才是正确的位置 client.run(TOKEN)
额外注意事项
- 确认你的TOKEN没有输入错误或泄露
- 如果后续机器人无法响应消息,需要在Discord开发者平台的机器人页面开启
message_content权限(当前默认Intents不包含该权限)
内容的提问来源于stack exchange,提问作者ElitePy
相关产品推荐
相关产品推荐

