Discord中创建机器人的流程

主要步骤概览

  1. 在 Discord Developer Portal 创建应用(Application)
  2. 在应用中创建 Bot(Bot User)
  3. 开启必要的权限与 Privileged Intents(特别是 Message Content Intent)
  4. 生成邀请链接并把 Bot 邀请进你的服务器
  5. 获取 Bot Token 并妥善保存(放到环境变量)
  6. (可选)在服务器/频道设置权限,确认 Bot 可以读取消息历史与附件
  7. 用 Python 运行最小测试脚本,确认能接收到消息并处理附件

详细步骤

  1. 创建应用(Application)
  1. 在应用中创建 Bot
  • 左侧选择 "Bot" 标签页。
  • 点击 "Add Bot" → "Yes, do it"。
  • 这会创建一个 Bot 用户;你可以修改头像、名字等。
  1. 开启 Privileged Gateway Intents(非常重要)
  • 在 Bot 页面往下找到 "Privileged Gateway Intents" 部分:
    • 打开 "Message Content Intent"(允许读取 message.content)。(你需要开启它才能通过 SDK/库读取普通消息文本)
    • 若你需要成员列表或 presence,也可按需打开 "Server Members Intent" 或 "Presence Intent"。
  • 注意:如果你的 Bot 要加入 100+ 服务器,启用某些特权 intents 可能需要经过 Discord 的审核/验证。
  1. 获取 Bot Token(千万别泄露)
  • 在 Bot 页面中,点击 "Reset Token" 或 "Copy" 获取 Bot 的 token(例如 "Bot XXXXXXXXX...")。把它存到安全地方(本地 .env 或服务器环境变量)。
  • 如果 token 泄露,立即在同一页面重置(Regenerate)。
  1. 生成邀请链接并邀请 Bot 到你的服务器
  • 在左侧选 "OAuth2" → "URL Generator"。
    • Scopes: 勾选 "bot" (如需 slash commands 也勾 "applications.commands")。
    • Bot Permissions: 在这里勾选所需权限(建议至少勾选):
      • View Channels (Read/View Channels)
      • Read Message History
      • Send Messages
      • Embed Links
      • Attach Files (如需上传)
      • Manage Messages(可选)
    • 页面底部会生成一个邀请链接(URL)。
  • 复制该 URL,在浏览器打开并选择要把 Bot 添加到的服务器(你必须拥有该服务器的管理权限或有邀请权限)。

说明:不要手动猜 permissions 的整数值 --- 用 OAuth2 页面勾选更安全。也可用手动构造:

https://discord.com/oauth2/authorize?client_id=YOUR_CLIENT_ID\&scope=bot applications.commands\&permissions=PERMISSIONS_INTEGER

但推荐用页面生成器以避免权限错误。

  1. 在目标服务器确认 Bot 权限
  • 在服务器的角色设置中,确认 Bot 的角色拥有"View Channels"与"Read Message History"权限;在频道覆盖权限中也要允许读取消息。
  • 若 Bot 无法读取 message.content,要检查是否已在开发者面板开启 Message Content Intent 并且你的代码在使用相应的 intents(见下例)。
  1. 获取频道 ID(如需按频道过滤)
  • 在 Discord 客户端设置 → 高级 → 打开 "开发者模式"。
  • 右键频道或消息 → 选择 "Copy ID" 得到 channel id(用于脚本过滤/配置)。
  1. 安全与生产建议
  • 切勿把 token 写入代码库。用环境变量或秘密管理工具(.env 文件在部署时放到服务器,且不要提交到 git)。
  • 如果 token 泄露,立即在开发者面板重置。
  • 在生产环境启用适当的日志、错误重试和速率限制处理(Discord API 和 企业微信 API 都有限流)。
  • 如果 Bot 要加入很多服务器(100+),注意 Discord 的验证/审核要求。

常见问题与解决

  • 读不到 message.content:确认你在开发者页面开启了 Message Content Intent,并在代码里把 intents.message_content = True。
  • 403 或权限错误:确认 Bot 在服务器的角色/频道中有"View Channel"和"Read Message History"的权限,以及你在 OAuth2 页面勾选了正确权限。
  • 邀请失败(没有权限):邀请者必须在目标服务器有"管理服务器"或相应权限。
相关推荐
小杰帅气2 分钟前
POSIX信号量
linux·运维·服务器
微风◝3 分钟前
网络安全入门系列(1):VMware安装Kali Linux 2025.4
linux·运维·服务器
翼龙云_cloud6 分钟前
亚马逊云代理商:如何在 AWS 控制台上手动重启主实例?
服务器·云计算·aws
开开心心_Every14 分钟前
音频格式互转工具,支持Mp3ApeWavFlac互转
linux·运维·服务器·typescript·edge·pdf·asp.net
码农编程录17 分钟前
【notes13】ioctl,休眠&唤醒,proc文件系统,调用堆栈函数,printk,动态打印,top,dstat,perf,ftrace
linux
2501_9464903820 分钟前
媒体演播场景xR虚拟拍摄技术落地实操——Hecoos服务器全链路技术拆解
服务器·xr·媒体·hirender·hecoos
红豆子不相思24 分钟前
virual serve
linux·运维·服务器
ZPC821027 分钟前
window 下使用docker
人工智能·python·算法·机器人
zl_dfq29 分钟前
Linux 之 【网络套接字编程】(网络字节序、字节序转换函数、套接字编程类型、标准套接字编程的头文件、sockaddr结构、整数IP与字符串IP的转换)
linux·网络
不知名。。。。。。。。32 分钟前
Linux---序列化
linux