如何正确向Discord Bot API发送请求及获取有效Token
Discord API请求正确操作指南与Token获取方案
有效机器人Token获取步骤
- 登录Discord账号后进入开发者门户的Applications页面
- 已创建过机器人应用的直接选中对应应用,未创建的点击New Application,按提示填写应用名称完成创建
- 左侧菜单选择Bot选项卡,在页面中点击Reset Token,完成安全验证后即可生成全新的有效Bot Token,该Token仅展示一次,生成后立刻复制保存
- 下拉页面找到Privileged Gateway Intents板块,根据你的接口调用需求打开对应权限开关(如消息读取、服务器成员读取权限),未开权限调用对应接口会直接返回403错误
- 通过OAuth2邀请链接把机器人加入目标服务器,邀请时勾选接口调用需要的对应权限,未入群或权限不足也会导致调用失败
示例代码问题说明
你当前使用的是第三方封装的lib SDK,代码中{token: 'which API key?'}位置需要填写该SDK对应平台的关联鉴权密钥,不能直接填入Discord后台生成的原始Bot Token。如果不需要依赖该第三方平台,直接用原生请求或官方SDK调用Discord API稳定性更高。
正确调用示例(原生JS实现)
所有直接请求Discord官方API的请求,必须在请求头携带格式为Authorization: Bot 你的Bot Token的鉴权字段。
注意:鉴权头里的Bot 前缀和Token之间必须保留半角空格,不能漏写前缀也不能把前缀拼错,这是新手最容易踩的坑
// 填入你自己的有效Token和目标频道ID const BOT_TOKEN = '从Discord开发者后台获取的Bot Token'; const CHANNEL_ID = '待查询的频道数字ID'; async function APIrequest(){ const response = await fetch(`https://discord.com/api/v10/channels/${CHANNEL_ID}`, { method: 'GET', headers: { 'Authorization': `Bot ${BOT_TOKEN}`, 'Content-Type': 'application/json' } }); // 错误捕获 if (!response.ok) { const errText = await response.text(); throw new Error(`请求异常,状态码:${response.status},错误详情:${errText}`); } const result = await response.json(); console.log('接口返回结果:'); console.log(result); } // 执行调用 APIrequest();
常见调用失败排查方向
- Token如果曾泄露到公开渠道(比如公开代码仓库、公共聊天群),会被Discord自动失效,需要回到Bot设置页重新Reset Token获取新值
- 确认机器人已经被加入你要操作的目标服务器,且拥有对应操作的权限
- 当前Discord API稳定版本为v10,调用旧版本(v6、v7等)接口会返回路由不存在错误
- 传入的channel_id等ID参数必须是纯数字格式的ID,不能传入频道名称、昵称等非ID值
内容的提问来源于stack exchange,提问作者Yoshi
相关产品推荐
相关产品推荐

