Discord
Discord 接入使用 Discord Gateway,用户可私聊机器人或在服务器频道中 @ 机器人来查询状态、控制设备或提问;服务器频道只有 @ 机器人时才触发,私聊会直接触发。
使用方式
| 方式 | 触发方式 | 说明 |
|---|---|---|
| 私聊机器人 | 直接向机器人发送文本 | 适合个人查询设备状态和远程控制。 |
| 服务器频道 @ 机器人 | 在频道中 @ 机器人并输入问题 | 适合社区、开发者服务器或团队频道。 |
| 长回复 | 由设备智能体自动回复 | Discord 单条消息有长度限制,长回复会自动拆成多条发送。 |
在 Discord 后台准备应用
- 在 Discord Developer Portal 创建 Application。
- 进入 Bot 页面,复制或重置 Bot Token。
- 在 Bot 页面启用 Message Content Intent。
- 进入 OAuth2 → URL Generator:
- Scopes 选择
bot - Bot Permissions 选择
View Channels、Send Messages、Read Message History
- Scopes 选择
- 打开生成的授权链接,把机器人加入目标服务器。
不要只从 Installation 页面安装应用;邀请链接需要包含 scope=bot,否则机器人可能不会作为 Bot 加入服务器。
在控制台填写配置
打开 设置 → IM 通道 → Discord,填写以下字段:
| 字段 | .env | 说明 |
|---|---|---|
| 启用 | DISCORD_ENABLED | 是否启动 Discord 通道 |
| Bot Token | DISCORD_BOT_TOKEN | Discord Bot Token |
| 白名单 | DISCORD_ALLOW_FROM | 可选,允许访问的 Discord 用户 Snowflake ID |
也可以在 .env 中配置:
bash
DISCORD_ENABLED=true
DISCORD_BOT_TOKEN=your-discord-bot-token
DISCORD_ALLOW_FROM=1234567890,2345678901保存后重启服务,配置才会生效。
验证接入
- 确认服务已重启。
- 日志中出现
Discord: enabled和Logged in as ...。 - 私聊机器人发送消息,或在服务器频道中 @ 机器人发送测试消息。
- 如果启用了白名单,确认发送者 Snowflake ID 已写入白名单。
Discord 单条消息长度有限,设备智能体的长回复会自动分段发送。
常见检查项
Used disallowed intents:确认 Bot 页面已启用 Message Content Intent。- 服务器频道无响应:确认消息中 @ 了机器人,并且机器人有读取和发送消息权限。
- 白名单后无响应:确认填写的是用户 ID,不是用户名。