跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Discord 机器人创建与配置完整指南

详细记录了在 Discord 开发者门户创建应用、配置 Bot 用户及网关意图的全过程。重点涵盖了 Token 的安全管理、OAuth2 邀请链接生成以及服务器权限设置。通过 Python 脚本接入并验证消息接收功能,确保 Bot 能正常处理文本与附件,同时规避了常见的 403 权限错误与限流风险。

佛系玩家发布于 2026/3/29更新于 2026/9/1052 浏览

概述

在 Discord 上部署一个 Bot 并不复杂,但涉及到的权限和意图(Intents)设置容易踩坑。本文将带你从开发者后台开始,一步步完成应用的创建、Bot 用户的配置、Token 管理以及最终的代码接入测试。

1. 创建应用与 Bot 用户

首先访问 Discord 开发者门户。点击 New Application,输入名称(例如 MyForwarderBot),确认创建。

进入应用详情页后,选择左侧的 Bot 标签页:

  • 点击 Add Bot 并确认 Yes, do it。
  • 此时 Bot 用户已生成,你可以修改头像、用户名等信息。

2. 关键配置:网关意图与 Token

这一步至关重要,直接决定 Bot 能否收到消息。

开启 Privileged Gateway Intents

在 Bot 页面往下滚动,找到 Privileged Gateway Intents 区域:

  • 务必打开 Message Content Intent。如果不启用,SDK 将无法读取普通消息文本。
  • 若需获取成员列表或在线状态,按需开启 Server Members Intent 或 Presence Intent。

注意:如果你的 Bot 计划加入超过 100 个服务器,部分特权意图可能需要通过 Discord 的审核验证。

获取并保护 Token

在 Bot 页面中,点击 Reset Token 或 Copy 获取 Bot Token(格式类似 Bot XXXXXXXXX...)。

  • 安全提示:切勿将 Token 硬编码到代码库中。建议使用环境变量或 .env 文件管理,并确保该文件未被提交至 Git。
  • 如果怀疑 Token 泄露,立即在同一页面点击 Regenerate 重置。

3. 邀请链接与服务器权限

要让 Bot 进入你的服务器,需要生成 OAuth2 邀请链接。

  1. 在左侧菜单选择 OAuth2 → URL Generator。
  2. Scopes:勾选 bot(如需支持斜杠命令 /,同时勾选 applications.commands)。
  3. Bot Permissions:勾选所需权限,建议至少包含:
    • View Channels (查看频道)
    • Read Message History (读取历史消息)
    • Send Messages (发送消息)
    • Embed Links (嵌入链接)
    • Attach Files (上传附件)
  4. 复制底部生成的 URL,在浏览器打开并选择目标服务器进行授权。

服务器端检查:

  • 进入服务器角色设置,确保 Bot 的角色拥有 View Channels 和 Read Message History 权限。
  • 在特定频道的权限覆盖中,也要确认允许读取消息。

4. 代码接入示例

准备好环境后,我们可以用 Python 快速验证连接。这里以 discord.py 为例,展示如何接收消息并处理附件。

import discord
from dotenv import load_dotenv
import os

# 加载环境变量中的 Token
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')

intents = discord.Intents.default()
intents.message_content = True  # 必须开启此意图才能读取内容

client = discord.Client(intents=intents)

@client.event
async def on_ready():
    print(f'Bot {client.user} 已上线!')

@client.event
async def on_message(message):
    # 忽略 Bot 自己的消息
    if message.author == client.user:
        return
    
    # 简单响应逻辑
    if message.content.startswith('!hello'):
        await message.channel.send('Hello there!')
    
    # 如果有附件,打印文件名
    if message.attachments:
        for attachment in message.attachments:
            print(f'收到附件:{attachment.filename}')

if __name__ == '__main__':
    client.run(TOKEN)

运行脚本后,观察控制台输出。如果看到 Bot ... 已上线!,说明连接成功。尝试在 Discord 发送消息,检查是否触发相应事件。

5. 常见问题排查

  • 读不到 message.content:双重检查开发者面板是否开启了 Message Content Intent,且代码中 intents.message_content = True 已生效。
  • 403 权限错误:确认 Bot 在服务器的角色/频道中有 View Channel 和 Read Message History 权限,且 OAuth2 页面勾选了正确权限。
  • API 限流:生产环境中请做好日志记录、错误重试和速率限制处理,避免频繁请求导致 Discord API 暂时封禁。
  • 邀请失败:发起邀请的用户必须在目标服务器拥有'管理服务器'或相应的邀请权限。

目录

  1. 概述
  2. 1. 创建应用与 Bot 用户
  3. 2. 关键配置:网关意图与 Token
  4. 开启 Privileged Gateway Intents
  5. 获取并保护 Token
  6. 3. 邀请链接与服务器权限
  7. 4. 代码接入示例
  8. 加载环境变量中的 Token
  9. 5. 常见问题排查

更多推荐文章

查看全部
  • MongoDB 详细安装与配置指南(Windows / Linux / macOS)
  • Android DataBinding 从入门到进阶
  • Neo4j 安装教程(Windows)
  • C++ 深拷贝与浅拷贝详解
  • 数据结构基础:顺序表的定义与实现
  • Mamba 模型环境配置指南:Windows 与 Linux 双平台部署依赖库
  • Python 驱动浏览器自动化:Playwright + AI 的最佳实践
  • Apache IoTDB 结果集排序与查询对齐模式:ORDER BY 与 ALIGN BY DEVICE 使用
  • WebSite-Downloader 网站整站下载工具使用指南
  • Qwen-Image-Edit-2511 与 Stable Diffusion 图像编辑能力对比
  • 前端可访问性核心实践与代码示例
  • 视觉语言模型(VLM)综述:An Introduction to Vision-Language Modeling
  • 混合知识库搭建:本地 Docker 部署 Neo4j 与 Milvus 向量库
  • URDF:ROS2 机器人模型描述格式详解
  • DeepSeek 本地化部署指南:Ollama 与 VS Code 实战
  • 鸿蒙 ArkUI 组件复用指南:@Reusable 装饰器与 NodePool 方案
  • Python 入门教程:核心特性、学习路线与实战建议
  • Electron 桌面应用开发实战:环境搭建、进程通信与打包
  • Z-Image-Turbo WebUI 本地部署指南:环境配置与启动流程
  • Jimeng AI Studio 零代码 AI 绘画入门教程

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online