You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Discord API返回401错误 如何获取有效OAuth2 bearer token

Discord API 返回401无权限的解决方法

调用获取服务器频道列表接口报401,核心是鉴权凭证类型不匹配、凭证格式错误,或者权限没开,不需要绕复杂流程,按下面两种使用场景选对应方案即可:

方案1:使用Bot Token(自建脚本/机器人场景首选,流程最简单)

  • 打开Discord开发者门户,进入你创建的对应Application
  • 左侧菜单选择「Bot」栏目,点击「Reset Token」,复制生成的Token字符串(这个字符串不要泄露给任何人,否则他人可以直接控制你的Bot)
  • 生成Bot邀请链接:在OAuth2→URL Generator中,勾选bot作用域,下方权限勾选View Channels,用生成的链接把Bot邀请进你要获取频道列表的目标服务器
  • 发起API请求时,请求头的鉴权字段必须严格按格式写:Authorization: Bot 你复制的BotToken
    注意:Bot 这个前缀是必填的,90%的人漏写这个前缀直接塞Token就会返回401

方案2:使用OAuth2用户Token(需要代表普通用户账号操作的场景)

  • 同样进入对应Application的OAuth2→URL Generator栏目
  • 作用域勾选identify guilds guilds.channels.read,设置好你的回调地址
  • 打开生成的授权链接,登录Discord账号完成授权,跳转后从回调地址的URL参数里拿到code授权码
  • 向Discord Token接口发POST请求,携带client_id、client_secret、code、grant_type: authorization_code、redirect_uri参数,即可兑换到用户Bearer Token
  • 发起API请求时,请求头鉴权格式为:Authorization: Bearer 你兑换到的用户Token,注意这里前缀是Bearer ,和Bot场景的前缀不一样

常见踩坑点

不要把Application ID、Client Secret当Token用,这两个参数不能直接当鉴权凭证;也不要混淆Bot和Bearer两种前缀,前缀和Token类型不匹配一定会报401。

你之前发起的报错请求截图如下:
api request with 401 error1

正确的请求示例(curl版本):

# 替换为你自己的服务器ID和对应Token
curl -H "Authorization: Bot 你的BotToken" https://discord.com/api/v10/guilds/目标服务器ID/channels

内容的提问来源于stack exchange,提问作者Boudewijn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 00:54:39