调用Discord API获取Guild信息时遭遇401未授权错误求助
排查步骤:
验证Bot Token有效性
确认使用的是机器人的完整、有效token:- 前往Discord开发者门户的Bot页面,检查token是否正确,若不确定可以点击"Reset Token"生成新token替换使用。
- 确保代码中的token没有被截断,完整复制生成的token,不要遗漏任何字符。
确认Bot已加入目标服务器
机器人必须是ID为772037458996101140的服务器成员,否则无法访问该服务器的信息。可以通过服务器成员列表确认机器人是否存在,若未加入,重新生成Bot邀请链接邀请其加入。检查Bot权限配置
获取Guild基础信息虽无强制权限要求,但确保机器人拥有基础访问权限:- 前往Discord开发者门户OAuth2→URL Generator,选择
bot范围,勾选VIEW_CHANNEL权限,生成邀请链接重新邀请机器人到目标服务器。
- 前往Discord开发者门户OAuth2→URL Generator,选择
确保授权头格式正确
Bot token的正确授权头格式为Bot [完整Token],首字母大写的Bot后加空格再跟token,示例代码:fetch('https://discord.com/api/v10/guilds/772037458996101140', { headers: { authorization: 'Bot Nzc2MzY2MzQzOTAz.GPwhCV.rhIcHxxxxxx5R8ZS-cIo4MjPcBVxO6wYsUXhY' }, }) .then(result => result.json()) .then(response => console.log(response)) .catch(console.error)注意:不要用
Bearer前缀,该前缀仅适用于OAuth2用户token。指定正确的API版本
Discord API要求明确指定版本,使用最新稳定版(如v10)的端点,避免因旧版本废弃导致的授权失败,正确端点格式为https://discord.com/api/v10/guilds/[Guild ID]。OAuth2用户Token的额外排查(若使用)
若尝试用用户token访问:- 确保token的授权范围包含
guilds权限,且用户是目标服务器成员。 - 授权头格式为
Bearer [用户AccessToken],同时注意用户token的API调用速率限制更严格。
- 确保token的授权范围包含
内容的提问来源于stack exchange,提问作者Rozbitá Žaluzie
相关产品推荐
相关产品推荐

