如何使用discord.py以已登录用户身份发送Discord消息?
Discord桌面应用调用用户账号发消息的实现方案
首先明确前提:Discord服务条款明确禁止非官方授权的self-bot行为,未经官方许可直接调用用户账号接口发消息会有极高的账号封禁风险,所有操作请优先选择官方合规路径
合规实现方案(无账号风险)
- 近似模拟用户发送:用你已经掌握的webhook能力即可实现,发送请求时在body中添加
username和avatar_url两个参数,分别传入当前登录用户的Discord昵称和头像链接,发送后的消息会显示对应用户的身份信息,仅在消息旁带有webhook标识,绝大多数场景可以满足需求,请求参数示例:
{ "content": "你要发送的消息内容", "username": "当前登录用户的Discord昵称", "avatar_url": "当前登录用户的Discord头像地址" }
- 完全官方合规的用户身份发送:如果你的应用是正规公开应用,可以申请Discord的OAuth2授权,在授权scope中申请
messages.send权限,用户完成授权后你可以拿到对应用户的access token,调用Discord官方REST API的发消息接口即可完全以用户身份发送消息,该方案完全符合官方规则,无封禁风险。
非合规方案(仅作原理说明,不推荐实际使用)
该方案违反Discord服务条款,一旦检测到账号会被永久封禁,禁止商用或大规模使用
- 原理上可以在用户登录Discord时获取用户的账号token,直接携带该token调用发消息接口即可发送,但Discord有完善的非官方客户端检测机制,该操作几乎必然会触发风控导致账号被封,完全不建议在正式场景使用。
内容的提问来源于stack exchange,提问作者Ahmed Wagdy
相关产品推荐
相关产品推荐

