Discord机器人仅授予Administrator权限时可上线运行的问题求助
解决方案
- 开启Discord开发者门户的特权意图权限
discord.py v1.5及以上版本强制要求声明网关意图才能接收对应事件,没有开启对应权限的机器人会出现登录成功但无法接收消息、不显示在线的问题。
操作路径:进入Discord开发者门户 → 选择你的机器人应用 → 进入「Bot」标签页 → 下滑找到Privileged Gateway Intents板块,开启以下两个开关:
Message Content Intent(消息内容意图)Guild Members Intent(服务器成员意图)
- 修改代码,显式声明使用的意图
你原来的初始化代码没有传入意图参数,默认不会启用特权意图,修改初始化部分代码如下:
import discord # 声明意图配置 intents = discord.Intents.default() intents.message_content = True intents.members = 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 if message.content.startswith('$hello'): await message.channel.send('Hello!') client.run('<key>')
- 同步OAuth权限配置
你在OAuth页面修改权限后,需要重新生成机器人邀请链接,将机器人重新邀请进服务器,新的权限配置才会生效,旧邀请链接不会同步后续修改的权限。
重新邀请时勾选bot、applications.commands两个scope,再勾选你需要的最小权限即可:
- 查看频道
- 发送消息
- 添加表情回应
- 读取消息历史
无需开启Administrator权限即可正常使用。
内容的提问来源于stack exchange,提问作者doejoe
相关产品推荐
相关产品推荐

