# Discord 接入

配置 Bot Token 与消息内容权限，验证频道、Thread 和回复。

## 应用、机器人与服务器分别准备

Nexus 通过 Discord Gateway 接收消息，通过 REST 接口回复。需要一个自己的 Discord 应用及其 Bot Token，并有权把机器人加入测试服务器。

先在 Nexus 内确认目标 Agent 能完成普通对话，再在 Discord 开发者后台核对应用。Application ID 标识应用，Bot Token 用于连接，Client Secret 不能替代 Bot Token。

## 配置机器人接收消息

在应用的 Bot 设置中检查 **Message Content Intent**。当前 Nexus 连接会请求服务器消息、私聊消息及消息内容相关 Intent；平台未允许对应特权 Intent 时，Gateway 连接可能被拒绝。是否还需平台审核，以应用规模和 Discord 当前要求为准。[Discord Gateway 权限说明](https://docs.discord.com/developers/events/gateway#privileged-intents)

这项设置控制事件与内容访问。机器人在某个频道能否查看和发送消息，还要检查服务器角色及频道权限。

## 在 Nexus 保存字段

打开 **能力 → 频道 → Discord**。

| 字段 | 内容 | 常见填错 |
| --- | --- | --- |
| Application ID | General Information / OAuth2 中的应用 ID | 填了服务器 ID |
| Bot Token | Bot 页生成的令牌 | 填了 Client Secret |
| REST API Base URL | 通常保留 `https://discord.com/api/v10` | 填了网页或 Gateway 地址 |

保存后使用页面提供的授权链接，将对应机器人加入测试服务器。核对授权页面中的应用与目标服务器，不只检查链接是否能打开。

机器人加入服务器后，在测试频道确认它能查看频道并发送消息。Thread 有自己的访问与发送条件，应单独检查。

## 配对并验证频道

从真人账号在测试频道向机器人发送请求，打开 Nexus **能力 → 配对**，核对该频道对应的外部关系，绑定到目标 Agent 与会话。随后再发一条带有明确标记的测试文字。

```text
这是 Discord 频道连接测试，请只回复“频道测试已收到”。
```

检查 Nexus 内请求进入预期会话，回复出现在原频道。私聊、服务器频道和 Thread 应分别验证；一次私聊成功不能说明机器人拥有服务器频道的发送权限。

## Thread 为什么要另查

Nexus 支持将回复送到对应 Thread。主频道可以发送而 Thread 失败时，先检查机器人能否访问该 Thread、Thread 当前状态以及配对目标，避免重建已经正常工作的应用配置。

先用文本测试，再处理业务附件与文件交付。不同平台支持的消息能力不同，不把 Nexus 工作区中的文件链接视为已经上传到 Discord 的附件。

## 接收与回复分开排错

| 失败阶段 | 检查内容 |
| --- | --- |
| Gateway 连接失败 | Bot Token、网络和 Message Content Intent |
| 机器人在线但无请求 | 频道可见范围、实际发送位置与配对 |
| 请求已进入 Nexus | 目标 Agent、模型和待处理审批 |
| Nexus 完成但频道无回复 | REST 请求错误、频道或 Thread 的发送权限 |

REST 地址与 Gateway 连接承担不同作用，修改其中一个不会自动修复另一个。更换令牌后在 Nexus 更新配置，并完成一条新消息的接收与回复。恢复失败投递前，先确认原频道没有收到重复消息。
