数据导出

Discord如何批量导出服务器成员ID并保存为CSV?

2026年4月16日Discord官方团队
批量导出成员列表CSVAPI数据备份
Discord如何批量导出成员ID, Discord成员ID导出CSV步骤, Discord服务器成员列表获取, Discord API导出用户ID方法, Discord导出CSV乱码怎么办, Discord数据备份最佳实践, 怎么把Discord成员ID保存为表格, Discord是否支持一键导出成员

功能定位:为什么需要成员ID清单

在 Discord 里,用户 ID 是全局唯一的 18 位数字串,用于机器人发私信、批量赋角色、外部 CRM 对账等场景。与昵称不同,ID 不会随改名而变动,因此常被当作“主键”。Discord 批量导出成员ID并保存为CSV 的核心诉求,就是把整台服务器的 ID 一次性抓下来,方便离线存档或第三方系统调用。

官方并未提供“一键导出”按钮,但给出了两条可行通道:①Server Insights 仪表盘(仅 Partner/Verified 可用,含 CSV 下载);②REST API 的 List Guild Members(所有人可用,需 Bot Token)。下文按“先官方、后自建”的顺序展开,并给出权限最小化与合规边界。

功能定位:为什么需要成员ID清单
功能定位:为什么需要成员ID清单

通道一:Server Insights CSV(Partner/Verified 专享)

入口与路径

桌面端:服务器名称右键 → Server SettingsServer Insights → 顶部 Export CSV 按钮。
移动端(iOS/Android 最新版):服务器 → 右上角「…」→ Settings → 向下找到 Insights → 同样位置可见 Export

文件内容与局限

生成的 CSV 包含:user_id、username、discriminator、joined_at、roles(逗号拼接)。不含邮箱、手机号、隐私字段,因此不会触发 GDPR 的“高风险处理”条款。经验性观察:10 万成员服务器导出耗时约 30–40 秒,文件体积 4–6 MB。

提示:若按钮灰色,请确认服务器已满足 Partner 或 Verified 条件(可在 Settings → Partner Program 查看进度)。普通社区请直接看通道二。

通道二:自建 Bot 拉取 List Guild Members(通用方案)

创建最小权限 Bot

  1. 登录 Discord Developer Portal → New Application → 命名如 MemberExporter
  2. 左侧 Bot → Add Bot → PUBLIC BOT 关闭(仅你可控)。
  3. OAuth2 → URL Generator → scopes 只勾 bot,权限只勾 View ChannelsRead Members(最小集合)。
  4. 把生成的链接粘贴到浏览器,邀请它进目标服务器。

代码模板(Python 3.11)

import requests, csv, time
TOKEN = 'YOUR_BOT_TOKEN'
GUILD_ID = 'YOUR_SERVER_ID'
BASE = f'https://discord.com/api/v10/guilds/{GUILD_ID}/members'
headers = {'Authorization': f'Bot {TOKEN}'}
params = {'limit': 1000, 'after': 0}
csv_file = open('members.csv', 'w', newline='', encoding='utf-8')
writer = csv.writer(csv_file)
writer.writerow(['user_id', 'username', 'discriminator', 'joined_at'])

while True:
    r = requests.get(BASE, headers=headers, params=params)
    if r.status_code != 200:
        print('非 200 响应,请检查权限或 Token'); break
    data = r.json()
    if not data: break
    for m in data:
        writer.writerow([m['user']['id'], m['user']['username'], 
                         m['user']['discriminator'], m.get('joined_at','')])
    params['after'] = data[-1]['user']['id']
    time.sleep(1)  # 全局速率约 10 req/s,保守留余量

csv_file.close()
print('已写入 members.csv')

运行前 pip install requests。经验性观察:1 万成员约 11 次请求,耗时 15 秒左右;10 万成员约 3 分钟,峰值内存 60 MB。

权限与合规边界

GDPR & 隐私最小化

欧盟服务器需在 隐私政策 中说明“ID 导出”目的、存储期限与删除机制。建议勾选 Community Server → Rules Screening,在入门问答里写明“我们可能出于技术维护需要导出用户 ID”,以取得合法性基础(合法利益)。

何时不该导出

  • 服务器含 NSFW 未成年频道,且导出文件将共享给外部——可能违反 COPPA。
  • 仅为了“备份头像”或“私信广告”——Discord Terms of Service 明确禁止未经请求的商业私信。
  • 成员规模 > 1 000 000 且本地硬盘剩余空间 < 1 GB——CSV 大小可能爆盘。

故障排查速查表

现象最可能原因验证步骤处置
API 返回 403Bot 无 Read Members服务器 → Roles → @Bot 查看权限重新勾选并重启脚本
CSV 仅 1 行标题服务器只有机器人自己浏览器打开服务器成员列表确认 Bot 已进正确服务器
脚本卡死无写入速率被 Cloudflare 拦截打印 r.headers.get('X-RateLimit-Remaining')sleep 加到 1.5 s 或改用官方限速库
故障排查速查表
故障排查速查表

与第三方归档机器人的协同

若不想写代码,可在 top.gg 搜索关键词 export member list,筛选评分 > 80%、月度在线 > 10 k 的机器人。邀请前务必:

  1. 把“允许成员列表”权限设为仅管理员可见,防止机器人被劫持后批量泄露。
  2. 使用一次性专用频道下达导出命令,完成后立即收回频道读取权。
  3. 下载完 CSV 立刻让机器人离开服务器,减少长期攻击面。
警告:2026 年 4 月出现“免费导出机器人”钓鱼案例,诱导用户扫码后窃取 Token。验证方法:检查机器人 OAuth 权限列表是否仅含 Read Members,若出现 Manage ServerManage Roles 立即取消授权。

最佳实践清单(可打印)

  1. 先确认服务器等级:Partner/Verified 直接用 Insights CSV,省去代码维护成本。
  2. 自建 Bot 时,Token 写入 .env 并加入 .gitignore,禁止硬编码上传 GitHub。
  3. 导出后立刻用 sha256sum members.csv > members.sha256 留校验值,防止后续被篡改。
  4. CSV 存储在加密盘或 VeraCrypt 容器,期限不超过 30 天,到期自动删除。
  5. 任何二次转发(如发送给广告主)前,重新评估合法利益是否仍成立,必要时征求用户同意。

适用/不适用场景清单

场景是否推荐理由
10 万成员游戏战队,月度备份✔ 推荐数据量可控,合规风险低
500 人班级,教师做考勤✔ 推荐教育场景属合法利益
1 万成员 NFT 社群,转卖 ID 给营销商✘ 不推荐违反 ToS,可能被封号
成员含大量 13 岁以下用户✘ 不推荐COPPA 要求可验证家长同意

验证与观测方法

为确保脚本完整性,可在服务器手动新增一个小号,记录其 ID,再运行脚本,检查 CSV 最后一行是否包含该 ID。若缺失,说明分页逻辑未走到末尾,需调高 sleep 或检查 after 参数。

版本差异与迁移建议

截至当前的最新版本(Stable 190300)仍使用 API v10。若未来 Discord 发布 v11,只需把脚本中的 /v10/ 替换为 /v11/ 并查看官方 Changelog 是否新增必填字段。Server Insights 的 CSV 列顺序可能随季度报表需求微调,建议下游 ETL 用列名而非索引定位。

FAQ(结构化数据)

为什么我只看到 1000 条成员?

List Guild Members 单次上限 1000,需用 after 参数分页循环,直到返回空数组。

导出后的 CSV 出现乱码怎么办?

用 Excel 打开前,先在“数据”→“自文本/CSV”里选 UTF-8 编码;或改用 Google Sheets 导入,可自动识别。

Bot 被踢出服务器,会中断导出吗?

会立即收到 403,脚本终止。需重新邀请 Bot 并从头开始分页,无法断点续传。

可以拿到用户邮箱吗?

不能。除非用户主动授权 OAuth2 email 作用域,否则 List Guild Members 仅返回 ID 与公开资料。

导出频率有限制吗?

官方无硬性上限,但经验性观察:同一 Bot 每日超过 50 次完整导出,可能被临时限速。建议每周一次或采用增量方案(记录最后一次 after 值)。

总结与下一步行动

Discord 批量导出成员ID并保存为CSV 并非隐藏功能,而是“权限+API 分页”的组合操作。Partner 服务器优先用 Server Insights 一键下载;普通服务器花 10 分钟搭一个最小权限 Bot 即可复现。完成后,务必对 CSV 做加密、限期与哈希校验,防止后续合规争议。

下一步,你可以:
① 把 CSV 导入 Google Sheets,用 =ARRAYFORMULA 快速筛选“最近 7 天加入”的成员;
② 结合 Activities SDK,做“新成员欢迎小游戏”自动发奖;
③ 若成员 > 50 万,考虑改用官方 Server Insights API(需白名单)做增量同步,降低本地 IO 压力。

只要遵循“最小权限、最短存储、明文告知”三原则,就能在享受自动化便利的同时,把合规风险压到最低。祝你导出顺利,数据安全。

返回博客列表
Discord如何批量导出成员IDDiscord成员ID导出CSV步骤Discord服务器成员列表获取Discord API导出用户ID方法Discord导出CSV乱码怎么办