如何通过Token登录Discord账号并在所有频道发送消息?
如何用Python通过Token登录Discord普通账号并群发消息?
重要警告
强烈不建议实施此操作:Discord服务条款明确禁止使用自动化工具登录普通用户账号(非机器人账号)进行批量操作,一旦被平台检测到,你的账号会被永久封禁,甚至可能触发相关法律责任。以下内容仅为技术原理演示,请勿用于实际场景。
技术实现思路(仅作演示)
官方discord.py库仅支持机器人账号登录,若要操作普通用户账号,需使用专门适配用户账号的分支库discord.py-self——该库绕开了Discord的机器人账号验证机制。
步骤1:安装依赖
pip install discord.py-self
步骤2:编写代码示例
import discord # 替换为你的普通账号Token USER_TOKEN = "你的账号Token" # 初始化客户端,开启所有权限意图 client = discord.Client(intents=discord.Intents.all()) @client.event async def on_ready(): print(f"已登录账号:{client.user}") # 遍历所有加入的服务器 for guild in client.guilds: print(f"正在处理服务器:{guild.name}") # 遍历服务器内的所有文本频道 for channel in guild.text_channels: try: # 检查是否拥有发送消息的权限 if channel.permissions_for(guild.me).send_messages: await channel.send("测试消息(仅为技术演示)") print(f"消息已发送至频道:{channel.name}") else: print(f"无权限发送消息至频道:{channel.name}") except Exception as e: print(f"发送消息至频道 {channel.name} 失败:{str(e)}") # 完成后退出登录 await client.close() # 登录普通用户账号,bot=False标记为非机器人账号 client.run(USER_TOKEN, bot=False)
关键注意事项
- 必须设置
bot=False参数,否则会被Discord识别为机器人账号,无法用普通用户Token登录。 - 需开启所有权限意图(
Intents.all()),否则无法获取服务器及频道的完整列表。 - 实际运行时会遇到大量权限限制(如部分频道只读、无发送权限),需补充更多异常处理逻辑。
- 批量发送消息会触发Discord的反垃圾检测机制,账号几乎必然被封禁。
机器人账号与普通账号的核心区别
Discord为机器人账号提供了合法的API接口和权限管理体系,允许其进行自动化操作;而普通用户账号的自动化行为被严格禁止,这是平台为维护秩序、防范垃圾消息及账号盗用等风险制定的规则。
内容的提问来源于stack exchange,提问作者Lena
相关产品推荐
相关产品推荐

