使用Requests发送Discord消息时遭遇401未授权错误求助
解决Discord个人账号API发送消息返回401未授权的问题
可能的原因及修复步骤
授权令牌失效或格式错误
- 检查
authorization字段的令牌是否正确:不要保留示例中的方括号[],直接填入原始令牌;另外Discord会在账号登录状态变更(如换设备登录、修改密码)时失效旧令牌,需要重新获取。 - 重新获取令牌的方式:打开Discord网页版,按F12打开开发者工具→切换到Network标签→随便触发一个请求(比如刷新频道消息)→在请求头里找到
authorization字段,复制其值(不要带引号)。
- 检查
API版本与请求格式问题
- Discord API v9已不再维护,建议切换到当前稳定版本v10,将请求URL改为
https://discord.com/api/v10/channels/[频道ID]/messages。 - 发送请求时改用JSON格式传递 payload(Discord当前更推荐这种方式),修改后的代码示例:
import requests header = {"authorization": "你的有效令牌", "Content-Type": "application/json"} payload = {'content': "Test"} r = requests.post( 'https://discord.com/api/v10/channels/目标频道ID/messages', json=payload, headers=header ) print(r.status_code) print(r.text) # 打印响应内容,方便排查具体错误原因
- Discord API v9已不再维护,建议切换到当前稳定版本v10,将请求URL改为
账号安全或权限限制
- 若近期开启了双重认证、修改过密码,旧令牌会被Discord作废,必须重新获取新令牌。
- 确认你的账号在目标频道仍有发送消息的权限,避免管理员修改了频道权限导致无法发送。
- 短时间内频繁发送消息可能触发Discord反自动化限制,建议降低请求频率。
内容的提问来源于stack exchange,提问作者Callmemartin_
相关产品推荐
相关产品推荐

