Skip to content

Discord

Discord 接入使用 Discord Gateway,用户可私聊机器人或在服务器频道中 @ 机器人来查询状态、控制设备或提问;服务器频道只有 @ 机器人时才触发,私聊会直接触发。

使用方式

方式触发方式说明
私聊机器人直接向机器人发送文本适合个人查询设备状态和远程控制。
服务器频道 @ 机器人在频道中 @ 机器人并输入问题适合社区、开发者服务器或团队频道。
长回复由设备智能体自动回复Discord 单条消息有长度限制,长回复会自动拆成多条发送。

在 Discord 后台准备应用

  1. 在 Discord Developer Portal 创建 Application。
  2. 进入 Bot 页面,复制或重置 Bot Token。
  3. 在 Bot 页面启用 Message Content Intent
  4. 进入 OAuth2 → URL Generator:
    • Scopes 选择 bot
    • Bot Permissions 选择 View ChannelsSend MessagesRead Message History
  5. 打开生成的授权链接,把机器人加入目标服务器。

不要只从 Installation 页面安装应用;邀请链接需要包含 scope=bot,否则机器人可能不会作为 Bot 加入服务器。

在控制台填写配置

打开 设置 → IM 通道 → Discord,填写以下字段:

字段.env说明
启用DISCORD_ENABLED是否启动 Discord 通道
Bot TokenDISCORD_BOT_TOKENDiscord 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

保存后重启服务,配置才会生效。

验证接入

  1. 确认服务已重启。
  2. 日志中出现 Discord: enabledLogged in as ...
  3. 私聊机器人发送消息,或在服务器频道中 @ 机器人发送测试消息。
  4. 如果启用了白名单,确认发送者 Snowflake ID 已写入白名单。

Discord 单条消息长度有限,设备智能体的长回复会自动分段发送。

常见检查项

  • Used disallowed intents:确认 Bot 页面已启用 Message Content Intent
  • 服务器频道无响应:确认消息中 @ 了机器人,并且机器人有读取和发送消息权限。
  • 白名单后无响应:确认填写的是用户 ID,不是用户名。