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

Flutter 组件 yaml_codec 适配鸿蒙 HarmonyOS 实战:高性能 YAML 编解码,构建标准化配置治理与动态资产解析架构

Flutter 组件 yaml_codec 适配鸿蒙 HarmonyOS 实战:高性能 YAML 编解码,构建标准化配置治理与动态资产解析架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 yaml_codec 适配鸿蒙 HarmonyOS 实战:高性能 YAML 编解码,构建标准化配置治理与动态资产解析架构 前言 在鸿蒙(OpenHarmony)生态迈向工业级应用、涉及复杂环境参数配置、多端差异化资源映射及高性能静态资产(Assets)加载的背景下,如何实现一种既具备人类可读性又具备机器高效解析能力的“配置语言”治理,已成为决定应用灵活性与工程可维护性的关键。在鸿蒙设备这类强调分布式部署且配置项密集的环境下,如果应用依然依赖臃肿的 JSON 或自定义的 Key-Value 格式,由于由于嵌套层次的复杂性与缺乏注释支持,极易由于由于“配置语义模糊”导致跨团队协作时的误操作。 我们需要一种能够支持层级嵌套、具备强类型映射且符合 YAML 1.2 标准的高性能编解码方案。 yaml_codec 为 Flutter 开发者引入了结构化的 YAML

By Ne0inhk
RUST:异步代码的测试与调试艺术

RUST:异步代码的测试与调试艺术

RUST:异步代码的测试与调试艺术 一、异步测试的本质与难点 1.1 异步测试与同步测试的区别 💡在Rust同步编程中,测试通常是顺序执行的,每个测试函数会阻塞线程直到完成,结果是确定的。而异步测试的结果可能受到任务调度、网络延迟、数据库连接等因素的影响,时序性和状态管理更加复杂。 同步测试示例: #[cfg(test)]modtests{#[test]fntest_add(){assert_eq!(1+1,2);}} 异步测试示例(使用Tokio测试宏): #[cfg(test)]modtests{usetokio::time::sleep;usestd::time::Duration;#[tokio::test]asyncfntest_async_add(){sleep(Duration::from_millis(100)).await;assert_

By Ne0inhk
Flutter 组件 activity_files 适配鸿蒙 HarmonyOS 实战:文件活动流治理,构建高性能存储沙箱访问与资产全生命周期管理架构

Flutter 组件 activity_files 适配鸿蒙 HarmonyOS 实战:文件活动流治理,构建高性能存储沙箱访问与资产全生命周期管理架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 activity_files 适配鸿蒙 HarmonyOS 实战:文件活动流治理,构建高性能存储沙箱访问与资产全生命周期管理架构 前言 在鸿蒙(OpenHarmony)生态迈向全场景分布式协同、涉及海量多媒体资产处理及严苛应用沙箱(Sandbox)隔离的背景下,如何实现一套既能穿透复杂的层级目录、又能实时追踪文件变更活动且具备极高 I/O 吞吐能力的存储治理架构,已成为决定应用性能广度与数据安全深度。在鸿蒙设备这类强调 AOT 极致性能与受限文件权限周期的环境下,如果应用依然采用陈旧的同步文件读取或缺乏活动追踪的直接 I/O,由于由于频繁的磁盘竞争,极易由于由于“主线程阻塞”或“资产状态不同步”导致用户在管理大型媒体库时发生明显的感知性卡顿。 我们需要一种能够解耦文件路径、支持异步流式追踪(Activity Tracking)且符合鸿蒙分布式文件系统安全范式的操作框架。 activity_files 为 Flutter 开发者引入了“

By Ne0inhk