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

如何通过Discord API获取用户数据并解决401未授权报错问题

问题原因及修复方案

1. 401错误的核心成因

  • 你当前使用的Discord v6 API接口已被官方正式弃用停用,首先需要替换为现行有效的API版本(推荐v10及以上)
  • 请求未携带合法的授权凭证,Discord所有用户接口都需要身份校验,浏览器直接访问时没有对应请求头自然会返回401
  • 禁止使用个人用户账号的令牌发起请求,该操作违反Discord服务条款,会直接导致账号被封禁,必须使用机器人令牌发起请求

2. 前置准备

前往Discord开发者后台创建应用并生成机器人令牌,授予机器人读取用户基础信息的权限,妥善保管令牌不要泄露给第三方。

3. 修正后的代码示例

import json
from urllib.request import Request, urlopen

# 填入你自己的机器人令牌,格式严格保留"Bot "前缀
header = {
    "Authorization": "Bot 此处替换为你的机器人令牌",
    "Content-Type": "application/json"
}

target_user_id = "513837216741720094"
# 替换为现行v10接口
req = Request(f"https://discord.com/api/v10/users/{target_user_id}", headers=header)
res = urlopen(req)
user_info = json.loads(res.read().decode())

# 生成署名,适配新/旧版用户名规则
if user_info.get("discriminator") == "0":
    # 新版无后缀用户名
    sign = user_info["username"]
else:
    # 旧版带#后缀的用户名
    sign = f"{user_info['username']}#{user_info['discriminator']}"

print(sign)

4. 注意事项

  • Discord API有速率限制,建议对拉取到的用户名做本地缓存,缓存周期可设置为12~24小时,避免频繁调用接口触发限制
  • 若机器人需要读取特定用户信息,确保机器人账户和目标用户在至少一个共同的Discord服务器内,否则可能无法拉取数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:36:07