使用Requests向Discord发送消息失败问题排查
用Python requests发送Discord消息失败的问题排查
以下是你代码中存在的几个关键问题,以及对应的解决方法:
- 协议错误:Discord API仅支持HTTPS请求,你代码中使用的
http://discord.com会导致请求被拒绝,必须改为https://discord.com。 - Token配置错误:
headers里的authorization字段值写的是占位符token,需要替换为真实的Discord Token:- 如果是机器人Token,格式必须是
Bot 你的机器人token(注意Bot后面有空格); - 如果是用户Token,直接填写Token值即可。
- 如果是机器人Token,格式必须是
- API版本过时:v9版本的Discord API已被废弃,建议使用当前稳定的v10版本。
- 权限缺失:确保你的账号(机器人或用户)拥有目标频道的「发送消息」权限,机器人还需要已加入目标服务器。
调试建议
在请求后打印响应状态码和内容,能快速定位具体错误:
print(r.status_code) print(r.text)
比如401代表未授权(Token错误),403代表权限不足,404代表频道ID无效或API路径错误。
修正后的示例代码
import requests channel_id = 935325134879850517 # 替换为真实Token,机器人Token需加Bot前缀 token = "你的真实Discord Token" headers = {"Authorization": f"Bot {token}"} # 用户Token则改为 {"Authorization": token} payload = {"content": "测试消息"} response = requests.post( f"https://discord.com/api/v10/channels/{channel_id}/messages", json=payload, headers=headers ) # 查看调试信息 print(response.status_code) print(response.text)
内容的提问来源于stack exchange,提问作者Water101
相关产品推荐
相关产品推荐

