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)
  • 打开:https://discord.com/developers/applications
  • 点击 “New Application”,填名称(例如:MyForwarderBot),点击创建。
  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%20applications.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 页面勾选了正确权限。
  • 邀请失败(没有权限):邀请者必须在目标服务器有“管理服务器”或相应权限。

Read more

【Copilot配置】—— copilot-instructions.md vs AGENTS.md vs .instructions.md三种指令文件解析与配置

【Copilot配置】—— copilot-instructions.md vs AGENTS.md vs .instructions.md三种指令文件解析与配置

Copilot 指令文件全解析:copilot-instructions.md vs AGENTS.md vs .instructions.md 作为常年和 VS Code 打交道的研发,最近在折腾 Copilot Agent 时,我发现很多同学和我一样,被 .github/copilot-instructions.md、AGENTS.md 和 .instructions.md 这三个文件绕晕了。 明明都是给 Copilot 写的 “指令”,为什么要分三个文件?它们的生效范围有啥区别?什么时候该用哪一个? 带着这些疑问,我翻遍了官方文档,又在自己的 AI Agent 项目里反复实测,终于把这三者的关系理得清清楚楚。这篇文章就用最直白的语言,结合实战配置,帮你彻底搞懂 Copilot 指令文件的使用逻辑。 一、先搞懂核心:

Python 面向对象(OOP)速成指南:从零开始打造你的“智能家居”

Python 面向对象(OOP)速成指南:从零开始打造你的“智能家居”

欢迎来到 Python 面向对象编程的世界! 如果你习惯了面向过程的“流水账”式写法,或者你是正在从 Java 痛苦(误)转型 Python 的工程师,这篇文章就是为你准备的。今天,我们不讲枯燥的理论,我们将化身架构师,用上帝视角打造一套智能家居系统。 🏗️ 第一章:上帝的图纸 —— 类与对象 在 Python 中,一切皆对象。但对象从哪来?得先有图纸。 * 类 (Class):就是图纸(或者模具)。 * 对象 (Object):就是根据图纸造出来的实物(比如你家的那个具体的小爱同学)。 1.1 定义你的第一个设备 我们先定义一个最基础的电器类。 classSmartDevice:"""智能设备基类"""# 类变量:所有设备通用的标签(类似

基于FPGA的ALU构建:手把手教程(Verilog实现)

从零开始在FPGA上构建一个ALU:不只是“做加法”,而是理解计算机的起点(Verilog实战) 你有没有想过,当你写下 a + b 这行代码时,背后到底发生了什么? 它不是魔法,也不是抽象概念——它是 硬件在真实电路中流动的电信号 。而这一切的核心,就是我们今天要亲手实现的模块: 算术逻辑单元(ALU) 。 这不只是一次“照着抄代码”的练习,而是一场深入数字系统底层的探索。我们将用 Verilog 在 FPGA 上从头搭建一个功能完整的 ALU,理解每一条线、每一个标志位的意义,并最终让它在开发板上跑起来。 准备好了吗?让我们从最基础的问题开始: CPU 是怎么“算数”的? ALU 到底是什么?别被术语吓住 简单说, ALU 就是 CPU 的“计算器”+“逻辑大脑” 。它接收两个数据(比如

Mujoco足式机器人强化学习训练02(URDF转XML)

Mujoco足式机器人强化学习训练02(URDF转XML)

URDF文件转XML文件 在安装完成mujoco playground以后,设计到三维模型的导入,在sw转出的文件大多为URDF格式,但是mujoco仿真的时候大多支持xml文件 xml文件官方地提供了转换脚本,需要下载mujoco工程文件,注意和上节下载的mujoco playground不是一个工程文件 1. mujoco工程文件下载 https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/.mujoco/mujoco210/bin 2. 在URDF文件中添加代码 <mujoco><compilermeshdir="../meshes/"balanceinertia="true"discardvisual="false"/><